「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辞典」を是非よろしくお願いします!