我创建了一个扩展zend表单的user_form类,它有4个元素用户名,密码,csrf的哈希值和最后一个提交按钮。
创建user_form的对象会渲染所有这四个元素。
在控制器操作中验证登录后,我检查失败尝试,并在一些修复失败尝试次数后,我想在提交按钮之前添加zend captch。
我添加了验证码元素,并在提交按钮后附加了它。
如何在特定位置添加zend元素?或者如何在提交按钮之前添加它?
还让我知道我的方式是正确的吗? 等待你的回复。 谢谢......
答案 0 :(得分:14)
从一开始就为您的元素提供订单号。添加订单号时,请在captcha元素中添加订单号。
$element->setOrder(10);
或
$form->addElement('text', 'username', array('order' => 10));
另请参阅Zend_Form manual。
答案 1 :(得分:6)
您可以使用setOrder()
作为markus说,或者当您在视图中渲染表单时,可以单独渲染每个字段:
// .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>