何が言いたいかって、例えば以下のようなvalidationを設定している時。
public $validate = array( 'user_id' =>array( 'rule' => 'notEmpty', 'message' => 'このフィールドは必ず入力してください。', ), ), );
下記みたいにvalidation対象のuser_idが無い配列を保存しようとしたら、notEmptyが発生すると思ていたんだけど、発生せずに保存しちゃった。user_idにはDBでフォルトの0が入っていた。
array( 'theme_id'=> '22' )
要するに、validationするには対象のフィールドの添字が配列内に存在しないと発火しないのね。
※追記
色々実験してわかったけど、以下みたいに'required' => trueを入れると添字がない場合にvalidation errorを発生させてくれる。
public $validate = array( 'user_id' =>array( 'rule' => 'notEmpty', 'message' => 'このフィールドは必ず入力してください。',
'required' => true, ), ), );
'required' => trueの不思議なのって、どのvalidationの種類にも入れられるので、例えばemailの形式を求めるvalidationに入れた場合、メッセージは「emailの形式で入れて下さい」みたいに出るんだよね。notEmptyだったらわりと自然なメッセージになるけど。
0 件のコメント:
コメントを投稿