2012-06-09 20 views
1

我正在編寫一個組件+幫助對,它處理當前視圖的JS文件的包含。CakePHP組件和幫助程序之間的邏輯

這個想法是自動加載與視圖(或動作)具有相同名稱的JS文件。因此,如果在同一個文件夾中有一個名爲「admin_add.ctp」和文件「admin_add.js」的視圖,則JS文件將包含在JS緩衝區中。我希望這會在beforeRender調用中自動發生。

棘手的部分是我需要能夠在Controller :: action級別(使用組件)啓用/禁用自動加載,但是包含邏輯需要在視圖級別(使用助手)發生。

如何將組件的啓用/禁用觸發器傳遞給幫助器,而無需在每個視圖模板中編寫代碼?

回答

0

我通過修改組件的controller-> helpers ['helperName']數組解決了這個問題。

由於Helper在組件的beforeRender調用後實例化,我可以修改helper的設置並從Helper :: __ contruct($ View,$ settings)調用訪問數據。

我不確定我是否可以依靠CakePHP的內部來保持這種回調順序,但它的工作到目前爲止。

+0

當您想自動加載時,只需將輔助程序添加到數組中。此外,已經有這樣的事情(儘管沒有組件):https://github.com/predominant/goodies –