まず、モデルに追記します。

/app/models/sample.php

<?php
class Sample extends AppModel {
    var $validate = array(
        'title'  => VALID_NOT_EMPTY
    );
}
?>

必須のチェック:VALID_NOT_EMPTY
数字のチェック:VALID_NUMBER
メールアドレスのチェック:VALID_EMAIL
年のチェック:VALID_YEAR

ビューの表示部分に下記内容を追加します。
app/views/samples/add.thtml
app/views/samples/edit.thtml

<?php echo $html->tagErrorMsg('Sample/title', 'タイトルは必須です。') ?>

上記以外の入力チェックをしたい場合は、モデルを下記のように変更します。

/app/models/sample.php

<?php
class Sample extends AppModel {
    var $validate = array(
        'title'  => VALID_NOT_EMPTY
    );

    function validates($data = array()){
        if (empty($data)) {
            $data = $this->data;
        }
        if(!parent::validates($data)){
            return false;
        }
        //独自のチェックはここから
        if(mb_strlen($data["Sample"]["title"])>10){
            $this->invalidate('title_moji');
            return false;
        }
        return true;
    }
}
?>

ビューの表示部分も下記内容を追加します。
app/views/samples/add.thtml
app/views/samples/edit.thtml

<?php echo $html->tagErrorMsg('Sample/title_moji', 'タイトルは10文字以内で入力してください。') ?>

参考サイト:CakePHP - validate | Shin x blog

1.2系ではもっと簡単に独自チェックをできるようになるらしいです。


,
この記事をはてなブックマークする