2015年11月11日水曜日

CakePHP 3でデータの削除

CakePHP 3データの削除です。GETリクエストを使用して削除を許可すると、ウェブクローラが誤ってコンテンツを削除する可能性があるので、危険ですと説明されています。というわけで、allowMethodで、postを指定しています。getなどでアクセスされた場合は、MethodNotAllowedException が投げられます。

src/Controller/ArticlesController.php
public function delete($id)
{
  // POSTメソッドのみを許可
  $this->request->allowMethod(['post']);

  // $idからエンティティーを取得。データがなければ、NotFoundExceptionが投げられる。
  $article = $this->Articles->get($id);

  // 削除成功
  if ($this->Articles->delete($article)) {
    $this->Flash->success(__('削除されました。'));
    return $this->redirect(['action' => 'index']);
  }
}

実際に設定してみたサイトがこちら

参考サイト
Blog Tutorial - Part 2 CakePHP Cookbook 3.x documentation)

0 件のコメント:

コメントを投稿