2010-08-11 119 views
0

我似乎無法找到一種方法在同一視圖中調用不同的控制器。我找到的最接近的是$ html-> link(「Register User」,array('controller'=>'users','action'=>'register'))。cakephp在一個視圖中調用不同的控制器?

所以我做了cakephp的博客教程。我有一個posts_controller.php,現在我想添加一個星級評分系統。我GOOGLE了一些東西,並得到這個漂亮的已完成的評級系統,你可以下載: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中的評級控制器,我認爲這很愚蠢。我也可以將評分系統用於其他內容。

所以......我不知道該怎麼做。其實這是一個謊言,我想我有兩個想法如何解決這個問題。但我需要批評和其他解決方案,我的谷歌技能失敗了。

  1. 我應該只將整個評分系統實現到app_controller.php中嗎?那麼每個控制器都會繼承這個評分系統?聽起來很愚蠢,因爲我不認爲我的用戶註冊需要評分系統。

  2. 我使用了另一種解決方案,requestAction('blab')。我認爲這使我能夠做的是...調用控制器內的另一個控制器。但這是令人沮喪的,因爲它殺死了性能。我不完全知道如何做到這一點哈哈或如果它的作品。我打電話給評級控制器,但是它的輔助功能呢?也許它會識別它,如果我添加一個var $ helpers = array('rating');

無論如何,感謝大家提前花時間閱讀本文。請指向正確的方向。

回答

2

讓ratings_controller擴展posts_controller。

這使您能夠有選擇地決定哪些頁面需要評分模塊。

+0

哦,哇,謝謝。那是......沿着這條線,爲什麼我沒有想到這一點。非常感謝你。 – mythicalprogrammer 2010-08-11 16:18:15

相關問題