
フォームを使わずに
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しています。
