【CakePHP】1人前のケーキ職人になるまで

パティシエじゃないよエンジニアだよ

【CakePHP】 データベースの更新、登録

データベースの登録の機能が欲しいと思ったので、具体的にどうすれば良いのか調べて見ました。

データベースの更新、登録がしたい場合はsaveメソッドを使います。saveメソッドが使い方によって更新(update)、登録(insert)ができるみたいです。

データの形式

CakePHPではモデルを保存するとき、以下の形式で保存します。

Array
(
    [ModelName] => Array
    (
        [fieldname1] => 'value'
        [fieldname2] => 'value'
    )
)
更新する場合

データを更新する場合、更新したいテーブルのidを指定してあげれば、そのidのデータがupdateされます。

// Update: id に整数値がセットされている
$this->Recipe->id = 2;
$this->Recipe->save($this->request->data);

$data = array('id' => 10, 'title' => 'My new title');
// id が 10 のレシピを更新
$this->Recipe->save($data);
登録する場合

データを登録したい場合は、テーブルのid(プライマリキー)を指定せずに登録するデータを用意してあげれば、insertと判断し新規登録してくれます。

// Create: id がセットされていない
$this->Recipe->create();
$this->Recipe->save($this->request->data);

!ループ中にsaveを呼び出すときは、createメソッドを忘れないこと。