【CakePHP辞典】Tips第2回:Model::save()の追加説明

Pocket詳解 CakePHP辞典」内で、Modelクラスで主要機能でもある「Model::save()」内の解説について、若干足りない部分がありましたので追加させていただきます。

【書式】

$this->save($data, $validate, $fieldList);

【引数】

変数名 初期値 説明
$data array null 保存するデータの連想配列
$validate mixed true バリデーションを行う場合はtrue。また他のオプションを与えたい場合は連想配列で指定。下記参照
$fieldList array array() 保存するフィールド名の配列。nullの場合は現在の$this->whitelistの保存指定を空にする。array()の場合は現在値で保存する

▼$validateに指定できるオプション値

キー名 初期値 説明
validate array null 保存するデータの連想配列
fieldList array array() $fieldListと同じ値を指定する
callbacks array array() コールバックメソッドを実行する場合にtrue。もしくは「before」でbeforeSave()を、「after」でafterSave()を実行する

$validateは、そのものの値はbooleanですが、連想配列を与えることもでき、一般的な$optionsと同じようにオプション値としてふるまいます。この場合は$fieldListは無視されますので、必要なら$validate内に含めます。また「callbacks」というパラメータを与えることもできます。callbacks は通常trueであり「beforeSave()」「afterSave()」コールバックを通過しますが、falseにすることで通過しません。また 「before」「after」とすることでbeforeSave()だけ、afterSave()だけ通過させることもできます。

なお、このcallbacksオプションは「Model::saveAll()」のオプション値としても有効です。何故ならsaveAll()は内部でsave()をコールしているためです。

各メソッドの解説は「Pocket詳解 CakePHP辞典」の58ページおよび61ページに掲載されています。

ほかにも便利な機能が紹介されている「Pocket詳解 CakePHP辞典」を是非よろしくお願いします!

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。