「Zend_Validate」で複数のエラーメッセージを同時出力!


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]

※わざわざ一つの配列に入れなくても、個別に出力してもいいかもね^^)

スポンサードリンク

コメント

タイトルとURLをコピーしました