2014-01-20 29 views
0

我有一個擴展AppController的ItemsController。 要處理我的網站菜單,我使用了menuhelper。 不過,我在the documentation看到,你必須添加你的助手在一個陣列控制器(AppController中):cakephp - 如何正確定義蛋糕php的幫助

public $helpers = array('Form', 'Html', 'Menu'); 

奇怪的是,我忘了,我的菜單反正工作。 此外,你總是必須添加表單和Html額外的數組,因爲否則他們不再工作。 然而,當我做這樣的事情在我AppController中,我的助手形式仍然工作:

public $helpers = array('Menu'); 

如此看來,無論我做什麼,它仍然有效,但我不知道爲什麼,我不像自動「魔術」:)

是否有我缺少的文檔?

+0

顯示你如何使用這些助手? – Anubhav

+0

那麼,在添加視圖中,我使用了「$ this-> Form-> create('something')」,它對我的​​菜單插件起作用,我稱之爲「$ this-> Menu-> render($ menu)」默認佈局,這也適用。 – randomizer

回答

1

從2.x開始,您不需要指定應用程序或核心幫助程序。 這些是自動延遲加載。

您只需手動指定插件助手。

這就是說,我個人仍然總是描述我使用的幫助者,只是爲了與插件一致。

+0

好的,所以文檔不是最新的? 「在CakePHP中啓用助手可以讓控制器知道它們,每個控制器都有一個$ helpers屬性,它列出了視圖中可用的助手,爲了在視圖中啓用助手,可以將助手的名稱添加到控制器的$ helpers數組:「似乎文檔在這個問題上並不那麼清楚。 – randomizer

+0

不,他們是正確的。正如我所提到的,仍然包含它們是很好的做法(即使它沒有它也可能)。例子:如果你將一個助手移動到一個插件上,那麼你需要找到它們可能需要的所有控制器並添加它,否則你只需搜索出現的地方並追加插件前綴即可。 – mark