バリデータのエラーメッセージをカスタマイズして表示させたいのですが、変数が存在しない場合に、NotEmptyの判定でデフォルトのエラーメッセージが表示されます。
$spec=array( array('name' =>'foo', 'validators' => array( array('name' => 'not_empty', 'options' => array( 'messages' => array( \Zend\Validator\NotEmpty::IS_EMPTY => '入力して下さい' ), ・・・ $factory = new \Zend\InputFilter\Factory(); $inputFilter = $factory->createInputFilter($spec); $inputFilter->setData(array());//←※ $inputFilter->isValid(); var_dump($inputFilter->getMessages());
これの実行結果『'Value is required and can't be empty' 』が出力されます。
※のところを
$inputFilter->setData(array('foo'=>''));
のように変数の宣言さえされていれば空でもnullでも『入力して下さい』と出力されるのですが、これだと例えばチェックボックスやラジオボタンで入力される項目について、チェックがついていない場合そもそも値がPOSTされませんので、必須チェックエラー時にカスタマイズしたエラーメッセージを返せないことになります
これについて対策ありますでしょうか。
フィルタを通す前に
if(!isset($_POST['foo'])){ $_POST['foo'] = ""; }
とするのはいくら何でもナンセンスですし。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/10 09:11