我想在另一个控制器(事件控制器)中使用“getpoll”,这是用户控制器的动作。
我该如何使用它?
提前感谢...给所有人......
答案 0 :(得分:4)
您可以使用控制器的requestAction方法:
$this->requestAction('/comments/latest');
你可以根据你的需要不同地调用它来查找链接:
CookBook的链接:Controller requestAction Method
答案 1 :(得分:3)
您应该将getPoll()
操作的数据库查询作为投票模型中的方法编写,这样在您的用户控制器中,您只需调用$this->User->Poll->getPolls()
即可获取轮询,如果关联设置正确,则从事件控制器$this->Event->Poll->getPolls()
开始。
例如,在您的投票模型中:
public function getPoll($userId = null) {
return $this->find('all', array(..));
}
答案 2 :(得分:2)
您可以在带有组件的控制器之间共享一段共同的代码。
答案 3 :(得分:0)
食谱说:
如果在没有缓存的情况下使用requestAction可能会导致性能不佳。它很少适用于控制器或模型。 http://book.cakephp.org/2.0/en/controllers.html
this 帖子显示了一种不同且更好的方法