有没有一种可靠的方法来为 a 创建自定义视图Zend_Form
?装饰器非常神秘,有时以奇特的方式使用它们非常复杂,以至于我宁愿只手动编写 HTML。有没有办法做到这一点并且仍然使表单与控制器完全合作(例如,调用$form->isValid()
并期望一切都能正确验证)?如果是这样,是否有任何需要注意的警告(例如注意验证错误显示)?
理想的解决方案是创建一个表单并传递元素数组(包含必要的数据,如名称、ID、输入类型以及呈现 HTML 所需的所有数据)——Zend 框架允许这样做吗?
[编辑]
echo
我尝试在视图中添加这段代码(一个简单的登录表单),而不是仅仅输入表单对象:
<?php
$userid = $this->form->getElement('userid');
$pass = $this->form->getElement('password');
$remember = $this->form->getElement('remember');
$submit = $this->form->getElement('submit');
?>
<form enctype="<?php echo $this->form->getEnctype(); ?>" method="<?php echo $this->form->getMethod(); ?>" action="<?php echo $this->form->getAction(); ?>" id="<?php echo $this->form->getId(); ?>">
name: <input type="text" id="<?php echo $userid->getId(); ?>" name="<?php echo $userid->getName(); ?>" /><br />
pass: <input type="password" id="<?php echo $pass->getId(); ?>" name="<?php echo $pass->getName(); ?>" /><br />
remember: <input type="checkbox" id="<?php echo $remember->getId(); ?>" name="<?php echo $remember->getName(); ?>" /><br />
submit: <input type="submit" id="<?php echo $submit->getId(); ?>" name="<?php echo $submit->getName(); ?>" value="<?php echo $submit->getValue(); ?>" />
</form>
该表单似乎可以正常工作并验证(尽管我没有被重定向到我来自的页面 - 但我相信这是一个不同的问题,因为我通过它GET
而不是在表单中)。这是可以接受的,还是我在不知不觉中做错了什么?