一旦表单对象已经创建,如何在特定位置添加zend表单元素?

Raj*_*wal 7 php zend-framework zend-form zend-form-element

我创建了一个扩展zend表单的user_form类,它有4个元素用户名,密码,csrf的哈希值和最后一个提交按钮.

创建user_form的对象呈现所有这四个元素.

在控制器操作中验证登录后,我检查失败尝试,并在一些修复失败尝试次数后,我想在提交按钮之前添加zend captch.

我添加了captcha元素,并在提交后按钮后附加.

如何在特定位置添加zend元素?或者如何在提交按钮之前添加它?

还让我知道我的方式是正确的吗?等待你的回复.谢谢...

mar*_*kus 14

从一开始就给你的元素订单号.添加订单号时,请在captcha元素中添加订单号.

$element->setOrder(10);
Run Code Online (Sandbox Code Playgroud)

要么

$form->addElement('text', 'username', array('order' => 10));
Run Code Online (Sandbox Code Playgroud)

另请参阅Zend_Form手册.


Liy*_*ali 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>
Run Code Online (Sandbox Code Playgroud)