デフォルトのグローバル関数(?)のmaxLengthでvalidationを行うと
strlenが利用されているため
日本語の文字数が正しくカウントされない
ヴァリデーションルールはカスタマイズチェックの場合と同様に
同一モデル内に記述すれば、こちらが参照されるので
function maxLength($data, $max) {
$str = array_shift($data);
$length = mb_strlen($check,mb_detect_encoding($str));
return ($length <= $max);
}
のように同一名でfunctionを作成すればチェック側は
'maxLength' => array(
'rule' => array('maxLength', 25),
'message' => '名前は25文字以内で入力してください。',
),
で変更せずにOKです
cakePHP 日本語のヴァリデーション
トラックバック(0)
このブログ記事を参照しているブログ一覧: cakePHP 日本語のヴァリデーション
このブログ記事に対するトラックバックURL: http://kashioka.net/cgi-bin/mt/mt-tb.cgi/205
コメントする