我通常在动作中实例化我的表单,这是我在提交时处理它们的地方。然后我将它们传递给视图并像往常一样输出它们。
此表单(搜索框)不同,因为它不是单个页面的一部分。它必须随处可见。我已经将它作为模板layout.phtml
的一部分并在那里实例化并访问它。
$search = new SearchForm();
echo $search;
表格打印得很好但现在的问题是我在哪里处理这个表格。我通常在动作中有这样的处理代码..
if ($this->_request->isPost()) {
//and form is valid
//process the data
}
但由于这种形式是普遍的,因此没有任何行动。我该怎么处理?
我应该:
我该怎么办?对此有何建议?
答案 0 :(得分:5)
搜索肯定需要一些处理代码来构建结果,所以我会在某处创建这个动作通用(比如在你的IndexController上)并指向表单。即使表单在每个页面上,您也可以将其指向特定的URL,例如/ search /.
否则你可以创建一个控制器插件来检查请求是否已经提交,然后运行处理代码。