cutmail's blog

write the code

cakephp1.2でvalidateを使うときに気をつけたい1つのこと

タイトルに数字を入れるのがはやっているみたいですね。
これで、アクセス伸びたりするのかな?

Model::validatesの使い方

コントローラ内でvalidates()を使う際に、
cakephp1.1と1.2で微妙に使い方が違うらしく、
結構はまったので、メモ。


1.1だと下のように書くとvalidateできますが、

<?php
    if ($this->Test->validates($this->data)) {
        echo '成功!';
    } else {
        echo '失敗';
    }
?>

1.2だと

<?php
    $this->Test->set($this->data);
    if ($this->Project->validates()) {
        echo '成功';
    } else {
        echo '失敗';
    }
?>

のように、postされてきたデータをモデルのインスタンスにセットしないといけないらしいです。
どおりで、エラーメッセージが出ないわけだ。