CakephpのsaveFieldである行の特定フィールドのみを更新
Cakephpでテーブル内のあるフィールドの一括アップデートに関するエントリーとして、Cakephpでカラムのクリアという記事を書き、その中で
updateAll
について書いてみた。updateAllが、テーブル内のあるフィールドを一括でアップデートするのに対し、saveFieldでは、行と列を指定してアップデートを行う場合に利用できる。saveFieldを利用する場合には、まず行を指定する必要がある。
$this->Model->id = $id; $this->Model->saveField('status', '2');
1列目で行のidを指定して、2行目でstatusというフィールドの値を2にアップデートしている。
saveFieldではデフォルトでvalidationがfalseに設定されている
saveFieldでは、バリデーションをonにしてアップデートを行うことができる。その場合には以下のように引数を設定する。
$this->Model->saveField('status', '2', $validate = true);
saveFieldは、個人的にupdateAllよりも利用頻度が高いかなと思っている。が、入門者の方にはセットでおぼえておきたいcakephpのメソッドとしておすすめです。