CakePHPでテーブルに保存できないとき。

自分への覚え書きです。

CakePHPでテーブルに保存できないときのチェックポイント。バリデートが通っていないかチェックしろ。

まじめにモデルにバリデートの設定をしていたらはまりました。Model::sate()の2番目の引数は、バリデートをするかの引数です。falseにすればバリデートを無視します。CakePHPのモデルのソースを読んでいたら見つけた。

ソースでは以下のようなかんじ。

[]$this->Model->id = $id;

$Model[‘Model’][‘flg’] = ‘9’;
$Model[‘Model’][‘mail’] = ‘xxxxxxx_’ . $user_mail;
$Model[‘Model’][‘url’] = ‘xxxxxxx_’ . $user_url;

// mailとurlはモデルのバリデートにしたがっていないので、バリデーションはOFFにする。
if ($this->Model->save($Model, false)) {

}[/php]