libro
www.tuyano.com
初心者のためのCakePHP3 プログラミング入門

CRUDの基本について (8/9)

作成:2015-09-19 11:21
更新:2015-09-19 11:21

■エンティティ削除のdeleteメソッド

では、コントローラー側にメソッドを用意しましょう。PersonsControllerクラスに、下のdeleteメソッドを記述して下さい。これで完成です。使い方は更新処理と同じで、ID番号をパラメータに指定してアクセスします。例えばID = 1のエンティティを削除したければ、
http://localhost:8765/persons/delete/1

こんな形でアクセスをします。これで、削除するデータの内容が表示されるので、内容を確認し、削除したければ送信ボタンをクリックします。

ここで行っている処理は、editメソッドとほとんど同じです。まずgetで指定のIDのエンティティを取得し、ifでPOSTをチェックします。
if ($this->request->is(['post', 'put'])) {……

これですね。そして、POST送信されていた場合には、モデルの「delete」メソッドで削除をします。これは、引数にエンティティを渡します。これにより、そのエンティティのレコードをデータベーステーブルから削除します。

正常に削除がされれば、deleteはtrueを返します。削除に失敗するとfalseを返すので、この返値をチェックすることで削除できたかどうかを確認できます。


――さあ、これでCRUDのデータベース基本操作が完成しました。これでデータベースの管理機能などが実装できるようになりしたね!

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

public function delete($id = null)
{
    $person = $this->Persons->get($id);
    if ($this->request->is(['post', 'put'])) {
        if ($this->Persons->delete($person)) {
            return $this->redirect(['action' => 'index']);
        }
    } else {
        $this->set('person', $person);
    }
}
※関連コンテンツ

「初心者のためのCakePHP3 プログラミング入門」に戻る