Web家計簿を、CakePHP3 Webサーバー環境構築で構築した環境にアップすることを目標に、複数回に分けてWeb家計簿を作って行きます。
============================
CakePHP3でWeb家計簿 記事一覧
③Security.saltの変更~DebugKitの非表示
⑳家計簿削除機能の作成 ←現在の記事
============================
今回は、家計簿削除機能の作成を行います。
手順1.家計簿削除メソッドの作成
作成したプロジェクト\src\Controller にある『AccountsController.php』を編集します。
class AccountsController extends AppController
{
//他の処理・・・・・
//家計簿削除
public function delete($id = null)
{
$this->request->allowMethod(['post', 'delete']);
//DB上書きフラグ
$save_flag = true;
//Authコンポーネントからユーザー情報を引継ぎ
$id = $this->Auth->user('id');
//自動遷移先
$url = 'https://www.google.co.jp/';
//テーブルから、PRIMARYキー(id)を元にユーザー情報を取り出す
$user = $this->Users->find()->where(['Users.id' => $id])->first();
//テーブルの各値をセット
$status = $user->status;
//論理削除などのフラグが立っていたら、自動遷移先に遷移する
if($status != null){
$save_flag = false;
$this->Flash->error(__('このユーザーは現在使用できません。'));
$this->redirect($url);
}
if(isset($this->request->data['id'])){
$accountsid = intval($this->request->data['id']);
}
$account = $this->Accounts->get($accountsid);
if ($save_flag == true && $this->Accounts->delete($account)) {
$this->Flash->success(__('家計簿を削除しました。'));
} else {
$this->Flash->error(__('家計簿を削除できませんでした。'));
}
return $this->redirect(['action' => 'index']);
}
}
次回記事では、家計簿登録・編集時のバリデーションを行います。