私はZend_Validate
を使ってフォーム入力を検証しています(Zend Frameworkのバージョンは1.8.2です)。デフォルトの検証エラーメッセージを上書きできないのはなぜですか?
$data = $_POST;
$filters = array('*' => array('StringTrim'));
$validators = array('driverName' => array('NotEmpty','messages' => 'This should override the default message but does not!'));
$inputFilter = new Zend_Filter_Input($filters,$validators,$data);
$messages = $inputFilter->getMessages();
debug($messages); //show me the variable contents
出力debug($messages)
から:動作しません説明hereとしてZend_Filter_Input
インタフェースを使用して、いくつかの理由については、どんなに私は何をすべきか
Array
(
[driverName] => Array
(
[isEmpty] => You must give a non-empty value for field 'driverName'
)
)
、私はそのメッセージをオーバーライドすることはできません。私は直接バリデータを使用する場合は、debug($messages)
からすなわち:
$notEmpty = new Zend_Validate_NotEmpty();
$notEmpty->setMessage('This WILL override the default validation error message');
if (!$notEmpty->isValid($_POST['driverName'])) {
$messages = $notEmpty->getMessages();
debug($messages);
}
出力:
Array
(
[isEmpty] => Please enter your name
)
ボトムライン。バリデーターを取得することはできますが、Zend_Filter_Input
インターフェースメソッドのメリットがない場合は、自分で検証クラスを作成することもできます。
これはなぜ起こっているのか、どのように修正するのかという手掛かりはありますか?
バグでしょうか?
...それはZend FrameworkののJIRAでだ、@Jasonバグです - 詳細&正しい答えをいただき、ありがとうございます。 $ optionsパラメータはそれを打ちました。パーフェクト、もう一度感謝:) – karim79