「Zend_Validate」を使った開発で、
・入力項目1 ・・・ バリデータ1, バリデータ2によるバリデータチェーンのチェック
・入力項目2 ・・・ バリデータ3によるチェック
をしたい場合、入力項目1、入力項目2の全てのエラーメッセージを表示したい場合は、
[PHP]
Zend_Loader::loadClass(‘Zend_Validate’);
Zend_Loader::loadClass(‘Zend_Validate_NotEmpty’);
Zend_Loader::loadClass(‘Zend_Validate_Alnum’);
Zend_Loader::loadClass(‘Zend_Validate_Regex’);
$validator1 = new Zend_Validate_NotEmpty();
$validator2 = new Zend_Validate_Alnum();
$validator3 = new Zend_Validate_Regex(array(‘pattern’ => ‘/^(https?:\/\/.+)$/’));
$validator1->setMessage(‘「id」が入力されていません。’);
$validator2->setMessage(‘「id」は英数字で入力して下さい。’);
$validator3->setMessage(‘「url」の形式が正しくありません。’);
//————————————–
// ※バリデート処理を省略
// $validatorChain->isValid($id)
// $validator3->isValid($uri)
//————————————–
$a_msg = array();
$a_msg1 = array();
$a_msg2 = array();
$a_msg1 = $validatorChain->getMessages();
$a_msg2 = $validator3->getMessages();
$a_msg = array_merge($a_msg1, $a_msg2); //「$a_msg1」と「$a_msg2」のエラーメッセージを結合!
// htmlテンプレートの変数「a_msg」へ配列として渡す
$this->view->a_msg = $a_msg;
[/PHP]
※わざわざ一つの配列に入れなくても、個別に出力してもいいかもね^^)
コメント