1

私のモデルでは

$form = new \Zend_Form();
$form->addElement('text', 'name', array(
        'validators'    => array(
            array('NotEmpty', true),
            array("stringLength", true, array(1,40))
        ),
        'required'      => true,
        'label'         => "Name",
    ));
return $form;

私のコントローラーでは、上記のモデル関数が呼び出されます

if($form->isValid($_POST)) {
  ....
} else {
$form = Product::getForm();
print_r($form->getErrors());
print_r($form->getErrorMessages());
print_r($form->getMessages());
}

Zend フレームワークを使用しています。

ここで、フォームの名前フィールドで、40 文字を超える文字列はエラー メッセージを表示する必要があります。

getErrors()とでエラーを取得してみましたgetErrorMessages()。しかし、これらの関数のどれも私にエラーを与えません。これらの関数を出力すると、空の配列が返されます。

この問題を解決するのを手伝ってください...

4

2 に答える 2

3

この電話をかける理由:

$form = Product::getForm();

したがって、古い $form 変数をエラー メッセージで上書きします。これらの行なしで試してみてください。

于 2012-08-07T10:35:57.713 に答える
2

isValid()次のようにフォームを呼び出すまで、エラーメッセージは表示されません。

$form = Product::getForm();

if(!$form->isValid($_POST))
{
    print_r($form->getErrors());
    print_r($form->getErrorMessages());
    print_r($form->getMessages());        
}
于 2012-08-07T08:33:35.463 に答える