【发布时间】:2011-06-01 07:43:03
【问题描述】:
如何让我的Search 控制器在内部使用doSearch() 函数在我的Titles 控制器中调用getTitles() 函数?
【问题讨论】:
-
一件事是将它移动到 app_controller 中,但让我们尝试不这样做
标签: cakephp controller cakephp-1.2
如何让我的Search 控制器在内部使用doSearch() 函数在我的Titles 控制器中调用getTitles() 函数?
【问题讨论】:
标签: cakephp controller cakephp-1.2
简短的回答是,你不应该这样做。您应该将其移至您的 Title 模型,或者将其放入组件或助手中以供重用。
如果你确定要直接调用控制器,Cake 确实为此提供了一个方法
http://book.cakephp.org/2.0/en/controllers.html#Controller::requestAction
【讨论】:
没有理由去另一个控制器。
控制器应该主要从模型中调用方法。所以应该有一个包含你需要的方法的Title Model。
如果您需要更多帮助,请发布您的代码。
【讨论】:
所以答案是:
$this->requestAction('/controller/action/params');
【讨论】:
使您想要重用组件的功能并不总是像 Cakephp 那样工作得很好,没有引入 Models 和 find() 以及 set->$this 等。另一种方法是让您的核心功能成为核心功能然后返回 $results,调用这个函数,如 $results =$this->function_within_controller();因此您可以通过这种方式重用该功能。我有时在尝试使用组件时会遇到很多错误,在 Cakephp 中,组件非常适合使用独立的 php 脚本和代码。
【讨论】: