テーブル内の行とフィールドを指定してアップデートを行う

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のメソッドとしておすすめです。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

テーブル内の行とフィールドを指定してアップデートを行うの記事にコメントを投稿