Как применить класс к декоратору Zend Framework при ошибке? - PullRequest
1 голос
/ 29 октября 2010

Прямо сейчас у меня есть элементы формы Zend, обернутые в list-items. Форма проверяет или исправляет ошибки, как и должно быть. Но я хотел бы применить класс к элементам списка элементов, нарушающих работу (но только к элементам, нарушающим элементы списка) при неудачной проверке. Пример:

Это поле имеет допустимый ввод

<li>
    <input type="text" name="address2" id="address2" value="" size="25">
</li>

но этот не

<li class="error">
    <input type="text" name="address2" id="address2" value="" size="25">
</li>

Единственный способ увидеть это - расширить Zend_Form_Element и переопределить isValid (), а затем расширить все классы, производные от Zend_Form_Element, которые мне нужны для моей формы.

Должен быть лучший путь.

правый

Чего мне не хватает?

СПАСИБО

1 Ответ

1 голос
/ 29 октября 2010

Я думаю, вам лучше изменить декоратор HtmlTag в зависимости от состояния элемента формы.

$tag = $element->getDecorator('HtmlTag');
$tag->setOption('class', 'error');

Возможно, есть несколько разных мест, где вы можете вызвать это при проверке. Вы можете сделать это по своему усмотрению или обнаружить наличие ошибок в каждом поле при создании формы.

Возможно, вы захотите также создать свои собственные декораторы.

Эти посты здесь и здесь хорошо справляются со слишком сложным миром декораторов Zend_Form.

...