CakePHP 2.5 基本搜索不同的控制器

CakePHP 2.5 Basic Search different controller

我正在用 CakePHP 编写一个网站应用程序,我需要在主页(pages/home.ctp,PagesController)上有一个搜索框,用于从我的活动页面(Events/index .ctp,事件控制器)。

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

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

  1. 这可能吗?如果可以,我能得到一些指示吗?
  2. 如果不是,我怎样才能实现类似的目标?

谢谢 史蒂夫

您的实际搜索应该在模型中完成,因为这是您用来检索数据的层。因此,如果您正在搜索事件,您将在事件模型中放置一个 search() 方法。

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

如果您在事件控制器中:

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

如果您在不同的(但关联的)控制器中:

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

如果您在不同的(非关联的)控制器中:

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

根据您的描述,听起来您只想将表单 post 发送到事件控制器的 index() 方法,您可以在其中检查是否提交了搜索查询,如果有,运行 搜索。