2010-01-07 51 views
2

本網站使用CakePHP 1.2 *CakePHP動態元素功能放置

我有一個元素需要放置在多個控制器下的多個視圖。這個元素是非常動態的,每次加載頁面時,都需要調用一個函數(它相當大),然後顯示返回的內容。

有幾個選項,我已經想到了,我確信其中沒有一個是這樣做的正確方法。

  • 配售app_controller內該功能並然後以某種方式從元件
  • 調用它創建一個幫助,然後它包括在每個控制器將顯示元素。
  • 創建一個組件,然後將其包含在每個將顯示該元素的控制器中。

任何幫助,以正確的方式讚賞這樣做。目前,該元素被放置在多個控制器下的多個頁面上,並使用$this->requestAction()調用該函數,這從我所瞭解的當然不是正確的方式。

在此先感謝!

回答

2

嗯,這是一個棘手的問題,也許你應該多給點信息。但我會嘗試:

  • 如果你的函數是你的應用邏輯的一部分,你應該把它作爲一個組件。
  • 如果這個函數是視圖的一部分,你應該讓它成爲一個幫手。
  • 如果該功能必須在視圖下執行,你也可以嘗試$this->render();

這是一個棘手的問題,我希望能幫助你,但你應該給一點額外的信息。

+1

非常感謝您的洞察力,對不起,我不確定我可以如何更具體,但因爲它顯示函數的結果,它應該是一個幫手。謝謝! – user103219 2010-01-07 05:14:00

+0

地鐵 - 你通常在什麼時候分出幫助和元素?對我而言,當我嘗試將元素分解成不同的方法時,但我很好奇其他人如何去做。你曾經向某個元素傳遞過論據,還是會向你尖叫「幫手」?最後,你會直接從助手回顯,還是隻返回輸出,讓調用元素迴應它? – 2010-01-07 16:39:54

+1

我不是cakePHP大師,但是我每次想要回收與設計一致的特定格式時都會使用元素。這可能是本網站上下三角形,用於問題和答案。只要你不吐出太多的html(幫助者可以用逗號分隔數千和數百)來幫助你很酷。 一個簡單的規則:如果它涉及太多的HTML並且您想要回收,請使用元素。如果不是的話,幫手是好的。我的兩分錢。 – metrobalderas 2010-01-07 17:38:09