2011-11-18 47 views
0

我正在CakePHP 2.0中编写一个搜索表单,目前我已经将它设置为与索引操作和视图一起运行(它也发布到索引操作),并对照模型进行验证这样如果在搜索字段中输入了任何不正确的字段(字段包括日期,价格),元素旁边就会出现一个很好的验证错误消息。基本上它有点像一个脚手架的添加形式。CakePHP如何编写一个搜索表单来显示结果

如果验证成功,我需要实际运行查询并返回一些数据。我不想在索引视图中显示这个数据 - 我应该:

  1. 运行查询,然后呈现一个不同的观点(这意味着该URL不会改变 - 不知道我想要的)。
  2. 将搜索参数存储在会话中,重定向到另一个操作,然后检索搜索详细信息。

还有别的办法吗?

回答

0

两个选项都可以。你必须决定你更喜欢什么,不要改变网址或改变它?

您也可以使用命名参数传递信息,以便用户可以为其请求添加书签,但它需要在显示结果的同一页面中执行验证。我通常使用cakedc搜索插件来做到这一点。

回到你两个选择,如果你的意思是这是在表现更好,我会选择一个号码,因为第二个需要加载一个新的模型/控制器等

+0

感谢 - 如果我想使用与分页结果 - 这将如何影响选项? – Richard

+0

如果你想使用paginate,你必须在调用paginator打印链接时也传递所有命名参数,并且它不会影响。我用paginate插件,它的作品完美:) – api55