0

我是 zend 世界的新手。我有一个通过扩展创建的表单BaseApp_Form。显然,验证也被强加于这些领域。但是在提交表单后,如果它触发验证错误,以及我收到的验证错误消息Warning: htmlspecialchars() expects parameter 1 to be string, array given in \library\Zend\View\Abstract.php on line 905。我知道这是escape($var)功能的问题library/zend/view/abstract.php。$var 的值有时不为空,有时什么也没有。这就是为什么htmlspecialchars()没有正确执行。但是现在如何解决这个问题。

更新

public function init()
    {
         $validators=array(
                new Zend_Validate_Db_NoRecordExists(array(
                'table' => 'table_name',
                'field' => 'name'
        )),new Zend_Validate_Alnum(array('allowWhiteSpace'=>true)),new Zend_Validate_Regex(array('pattern' => '/^[a-z]/i')));


        $this->setMethod('post');

        $this->addElement('text','name',array(
            'label'=>'Name',
            'required'=>true,
            'filters'=>array('StringTrim')
        ));

        $this->getElement('name')->addValidators($validators);

        $this->addElement('textarea','textarea1',array(
            'label'=>'textarea11',
            'required'=>true,
            'filters'=>array('StringTrim'),
            'rows' => 5,
            'cols' => 50
        ));


        $this->addElement('textarea','textarea2',array(
            'label'=>'textarea22',
            'required'=>true,
            'filters'=>array('StringTrim'),
            'rows' => 5,
            'cols' => 50
        ));


       $this->addElement('textarea','textarea3',array(
            'label'=>'textarea33',
            'required'=>true,
            'filters'=>array('StringTrim'),
            'rows' => 5,
            'cols' => 50
        ));


        $this->addElement('checkbox','isApproved',array(
            'label'=>'Is Approved',
            'required' =>false
        ));

        $this->addElement('submit','saveCategory',array(
            'ignore'=>true,
            'label'=>'Save Category'
    )); 

    }

这是在一个正在扩展的类中,Zend_Form在视图页面中我称之为这个表单。

4

0 回答 0