foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

CakePHP カスタム バリデータの追加

モデルの $validates に設定できるバリデータを追加するには、
AppModel に関数を追加する。

<?php
class Product extends AppModel {
    // ここで定義した関数名を $validates に指定することになる。
    function productName($check){
        if(! mb_ereg('/[A-Z].+[0-9]*$/', $check)){
            $this->invalidate('product_name', '商品名は英数字で始まり、数字で終わるようにしてください。');
            return false;
        }
        return true;
    }
}
?>

もし、全てのモデルで共通のバリデーションにしたいのであれば AppModel に追加する。

<?php
class AppModel {
    function productName($check){
        :
    }
}
?>