cakephper大先生の
http://d.hatena.ne.jp/cakephper/20090909/1252461412
これ、使ってびっくり。
○モデル
<?
class Labo extends AppModel {
var $actsAs = array(
'Containable',
'Cakeplus.AddValidationRule',
'Cakeplus.ValidationErrorI18n',
);
var $useTable = false;
var $validate = array(
'title' => array(
"titleng" => array('rule' => array('minLengthJP', 5),
)
)
);
//ここから下が、ValidationErrorI18n独自の設定
public function __construct($id = false, $table = null, $ds = null){
parent::__construct($id, $table, $ds);
//ここにエラー文を入力しておけば、その通りのエラー文を表示してくれる。
$errorMessages = array(
'titleng' => __('タイトル入力してよね!',true),
);
$this->setErrorMessageI18n($errorMessages);
}
public function beforeValidate(){
$this->replaceValidationErrorMessagesI18n();
return parent::beforeValidate();
}
}
?>
こうやれば全てのモデルで、指定したエラー文を吐き出してくれるのでいちいち書き直さなくて良い。
これは汎用性が高いかも。
もっと速く知れば良かった。
にしてもうまいプログラマーはソースコードがすさまじく簡潔だな。



