CakePHP 2.5 Basic搜索不同的控制器

时间:2015-04-29 15:38:11

标签: php cakephp cakephp-2.5

我正在CakePHP中编写一个网站应用程序,我要求在主页(pages / home.ctp,PagesController)上有一个搜索框,用于搜索我的事件页面(Events / index.ctp,EventsController)中的内容。

我希望搜索查看事件表的所有字段,但只有一个输入框。

当用户点击搜索或点击输入时,他们应该被带到事件/ Index.ctp页面,其中列出了所有事件。

  1. 这可能吗?如果可以,我可以得到一些指示?
  2. 如果不是,我怎样才能达到类似的效果?
  3. 由于 史蒂夫

1 个答案:

答案 0 :(得分:1)

您的实际搜索应该在模型中完成,因为它是您用来检索数据的图层。因此,如果您要搜索事件,则需要在事件模型中添加search()方法。

然后,在任何控制器中,您都可以访问search()方法。您执行此操作的控制器取决于您可以考虑的任何数量的事情。

如果你在事件控制器中:

$this->Event->search($postData);

如果你在另一个(但相关的)控制器中:

$this->User->Event->search($postData);

如果你在另一个(非关联)控制器中:

$this->loadModel('Event');
$this->Event->search($postData);

根据您的说明,听起来您只想将表单发布到事件控制器的index()方法,在那里您可以检查是否提交了搜索查询,如果有,请运行搜索。