Я пытаюсь создать пользовательский элемент формы, который расширяет Zend_Form_Element_Text с помощью валидатора (поэтому мне не нужно постоянно настраивать валидатор, когда я использую определенные элементы).В любом случае, у меня возникают проблемы при передаче переменной $ maxChars, когда я создаю ее экземпляр в форме Main.Я предоставил свой сокращенный код ниже
Это мой пользовательский элемент ниже
class My_Form_Custom_Element extends Zend_Form_Element_Text
{
public $maxChars
public function init()
{
$this->addValidator('StringLength', true, array(0, $this->maxChars))
}
public function setProperties($maxChars)
{
$this->maxChars= $maxChars;
}
}
Здесь я создаю экземпляр своего пользовательского элемента формы.
class My_Form_Abc extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('abc');
$customElement = new My_Form_Custom_Element('myCustomElement');
$customElement->setProperties(100); //**<----This is where i set the $maxChars**
$submit = new Zend_Form_Element_Submit('submit');
$submit -> setAttrib('id', 'submitbutton');
$this->addElements(array($customElement ,$submit));
}
}
Когда я пытаюсь передать '100' с помощью $ customElement-> setProperties (100) в моей форме, он не будет правильно передан моему валидатору StringLength.Я полагаю, это потому, что в Init вызывается валидатор?Как я могу это исправить?