Как добавить элемент формы Zend в определенную позицию, после того как объект формы уже создан?
Я создал один класс user_form, который расширяет форму zend, он имеет 4 элемента username, password, hash для csrf и, наконец, кнопку submit.
Создание объекта user_form визуализирует все эти четыре элемента.
После проверки входа в действие контроллера я проверяю неудачные попытки, и после некоторого исправления количества неудачных попыток я хочу добавить Zend Captch перед кнопкой отправки.
Я добавил элемент капчи, и он был добавлен после кнопки отправки.
Как я могу добавить элемент Zend в определенной позиции? Или как я могу добавить его перед кнопкой отправки?
Кроме того, дайте мне знать, что способ, которым я делаю, является правильным? Жду твоего ответа. Спасибо...
2 ответа
Дайте вашим элементам порядковые номера с самого начала. Добавьте номер заказа к элементу капчи, когда вы добавите его.
$element->setOrder(10);
или же
$form->addElement('text', 'username', array('order' => 10));
Смотрите также руководство Zend_Form.
Вы можете использовать setOrder()
как сказал Маркус, или когда вы визуализируете свою форму в вашем скрипте просмотра, вы можете визуализировать каждое поле отдельно:
// .phtml
<form id="form" action="<?= $this->escape($this->form->getAction()); ?>" method="<?= $this->escape($this->form->getMethod()); ?>">
<table>
<?= $this->form->username ?>
<?= $this->form->password ?>
<?= $this->form->hash ?>
<?= $this->form->captcha ?>
<?= $this->form->submit ?>
</table>
</form>