zend_form:我应该在布局中使用一个权限

时间:2010-10-10 03:55:59

标签: php zend-framework zend-form

我通常在动作中实例化我的表单,这是我在提交时处理它们的地方。然后我将它们传递给视图并像往常一样输出它们。

此表单(搜索框)不同,因为它不是单个页面的一部分。它必须随处可见。我已经将它作为模板layout.phtml的一部分并在那里实例化并访问它。

$search = new SearchForm(); 
echo $search;

表格打印得很好但现在的问题是我在哪里处理这个表格。我通常在动作中有这样的处理代码..

    if ($this->_request->isPost()) {
        //and form is valid
        //process the data            
    }

但由于这种形式是普遍的,因此没有任何行动。我该怎么处理?

我应该:

  • 为它创建一个虚拟动作(这是没有意义的,因为表格无处不在)
  • 或者我应该将处理代码直接放入layout.phtml(我认为这是不好的MVC实践,因为我现在混合处理表单与视图)。

我该怎么办?对此有何建议?

1 个答案:

答案 0 :(得分:5)

搜索肯定需要一些处理代码来构建结果,所以我会在某处创建这个动作通用(比如在你的IndexController上)并指向表单。即使表单在每个页面上,您也可以将其指向特定的URL,例如/ search /.

否则你可以创建一个控制器插件来检查请求是否已经提交,然后运行处理代码。