スポンサードリンク

CakePHP
CakePHP

フォームを使わずに

DBを変更させたいことがありました。

CakePHPにあるsaveメソッドを使って

DBの変更のやり方です。

スポンサードリンク

フォームを使わないsaveの仕方

CakePHPのBOOKのsaveメソッドを見ると

Model::save(array $data = null, boolean $validate = true, array $fieldList = array())

上記の様になっています。

第1引数に値、第2引数にバリデーション、第3引数に変更するフィールドを

渡すとDBの変更ができるようです。

insertする場合

//登録する値
$data = array('Model' => array('name' => '山田', 'status' => 1));
// 登録するフィールド
$fields = array('name', 'status');
// 新規登録
$this->Model->save($data, false, $fields);

updataする場合

//登録する値
$data = array('Model' => array('id' => 5, 'name' => '山田', 'status' => 1));
// 登録するフィールド
$fields = array('name', 'status');
// 更新
$this->Model->save($data, false, $fields);

渡す値にidがないと新規追加のinsertとして判断してくれます。

逆に、渡す値にidがあると更新のupdataとして判断してくれます。

第2引数にfalseをしているので

バリデーションなしでsaveしています。

データを保存する

スポンサードリンク