読者です 読者をやめる 読者になる 読者になる

cakephp1.2 複数の同一モデルデータを一括でバリデートすることはできない(多分)

cakephp

これまでな~んどもおんなじことやってその度に調べて半年もすれば忘れておんなじことをな~んども繰り返すのでめんどくさいけどメモする。
例えばこんなデータ

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();
 }
}