我通常在一个动作中实例化我的表单,这是我在提交时处理它们的地方。然后,我将它们传递到视图并像平常一样输出它们。zend_form:我应该在布局中使用一个右侧
此表单(搜索框)不同,因为它不是单个页面的一部分。它必须在任何地方都可见。我已经将它作为模板layout.phtml
的一部分,并在那里实例化并访问它。
$search = new SearchForm();
echo $search;
表格打印出来的不错,但现在的问题是我在哪里处理此表单。我通常在动作中有这样的处理代码..
if ($this->_request->isPost()) {
//and form is valid
//process the data
}
但是由于此表单是通用的,因此没有任何操作。我该如何处理?
我应该:
- 为它创建一个假动作(这是没有意义的,因为形式是无处不在)
- 或者我应该把处理代码对入layout.phtml(其我认为是不好的MVC练习,因为我现在正在混合处理表单和视图)。
我该怎么办?对此有何建议?
你是否已将窗体instatiation放在视图中?听起来有点奇怪。也许插件是最好的方法。此外,你可以使用queryAction来创建一个searchController来处理...你有一个sigle结果页面吗? – 2010-10-10 07:01:54
*(相关)* [使用动作助手实现可重用广告](http://weierophinney.net/matthew/archives/246-Using-Action-Helpers-To-Implement-Re-Usable-Widgets.html) – Gordon 2010-10-10 10:09:11