【问题标题】:CakePHP 2.5 Basic Search different controllerCakePHP 2.5 Basic Search 不同的控制器
【发布时间】:2015-04-29 15:38:10
【问题描述】:

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

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

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

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

谢谢 史蒂夫

【问题讨论】:

  • 听起来您最近开始创建该应用程序。为什么不选择 CakePHP 3?
  • @AndreSantiago 我没有使用 CakePHP 3,因为我有一个基本的 CakePHP 应用程序,所有的身份验证等都已经为 2.5 内置,我用于身份验证的插件还没有在 3.0 上

标签: php cakephp cakephp-2.5


【解决方案1】:

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

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

如果您在事件控制器中:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多