Я очень новичок в мире 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
, и на странице просмотра я вызываю эту форму.