cakephp在一个视图中调用不同的控制器?

时间:2010-08-11 15:44:22

标签: cakephp cakephp-1.3

我似乎找不到在同一视图中调用不同控制器的方法。我发现最接近的是$ html-> link(“Register User”,array('controller'=>'users','action'=>'register'))。

所以我做了cakephp的博客教程。我有posts_controller.php,现在我想添加星级评分系统。我用谷歌搜索了一些东西,得到了你可以下载的这个已经很好的评级系统:http://www.reversefolds.com/articles/show/rating2

现在我有两个控制器,rating_controller.php和post_controller.php。

我的基本路线'/'指向后置控制器的索引操作。我的帖子的view.ctp显示了一个博客条目,我想在此视图中添加评级系统。并使用评级我需要像这样调用帮助器:

echo $rfRating->ratingBar($ratingInfo);

当我在post的view.ctp文件中执行此操作时。它抱怨。我已经尝试过使用var $helpers = array('blah'),但它没有用,我最终在post_controller中合并了rating控制器,我觉得这很愚蠢。我也可以将评级系统用于其他东西。

所以......我不知道该怎么办。实际上这是一个谎言,我想我有两个想法如何解决这个问题。但我需要批评和其他解决方案,我的谷歌技能失败。

  1. 我应该将整个评级系统实施到app_controller.php中吗?这样每个控制器都继承了这个评级系统?听起来很愚蠢,因为我不认为我的用户注册需要评级系统。

  2. 我已经搜索了另一个解决方案requestAction('blab')。我认为这使我能做的是......在控制器内调用另一个控制器。但这是因为它杀死了性能而皱眉头。我不知道如何做到这一点哈哈或它是否有效。我打电话给评级控制器,但它的辅助功能怎么样?如果我添加一个var $ helpers = array('rating'),它可能会认出来;

  3. 无论如何,感谢大家提前花时间阅读本文。请指出我正确的方向。

1 个答案:

答案 0 :(得分:2)

让ratings_controller扩展posts_controller。

这使您能够有选择地决定哪些页面需要评级模块。