cake焼きました(19)
「バリデーションのmaxlength」
入力された文字数が多かったらはじくために
バリデーションのmaxlengthを記述しているのですが、
どうにもこうにも制限20文字のつもりが7文字でアウト
調べた結果。
どうやらmaxlength,minlengthの引数の数字はバイト数を表しているそうです。
たとえばUTF-8の全角だと3バイト使っているので、
3 * 7 = 21バイトでバリデーションに引っかかっていたようです。
ソースはこんな感じで落ち着きました。
var $validate = array($ 'keyword' => array($ array($ 'rule' => 'notEmpty',$ 'message' => 'キーワードを入力してください'$ ),$ array($ 'rule' => array('maxLength', 60),$ 'message' => '20文字以内で入力してください'$ ),$ ),$ 'eat' => array($ 'rule' => 'notEmpty',$ 'message' => '食べ方を選択してください'$ ),$ 'category' => array($ 'rule' => 'notEmpty',$ 'message' => 'カテゴリを選択してください'$ )$ );$