cakephp1.2 複数の同一モデルデータを一括でバリデートすることはできない(多分)
これまでな~んどもおんなじことやってその度に調べて半年もすれば忘れておんなじことをな~んども繰り返すのでめんどくさいけどメモする。
例えばこんなデータ
Array ( [0] => Array ( [Model] => Array ( [col1] => hoge [col2] => fuga ) ) [1] => Array ( [Model] => Array ( [col1] => hoge2 [col2] => fuga2 ) ) [2] => Array ( [Model] => Array ( [col1] => hoge3 [col2] => fuga3 ) ) )
同じモデルの複数データをバリデートしたいケース。
<?php $this->Model->set($data); // $dataは↑と同じデータ $this->Model->validates();
これでうまくいくかと思ったけどバリデートが効かなかった。
なので以下のように一個ずつチェックしないといけない。
<?php $error = array(); foreach ($data as $k => $v) { $this->Model->create(); //エラーが残るので必ずクリア $this->Model->set($v); if(!$this->Model->validates()) { $error[$k] = $this->Model->invalidFields(); } }