我期待將Laravel 4擴展爲包含ViewModel
對象,或者使Views
的行爲類似於ViewModel
並創建單獨的模板部分。我寧願爲此使用鬍子,但它不是必需的。Laravel 4 ViewModel(帶小鬍子)
是否有任何好的庫或代碼片段可以讓我擴展基本的Laravel功能,並在我的控制器和HTML模板之間插入ViewModel
。任何幫助,將不勝感激!
我期待將Laravel 4擴展爲包含ViewModel
對象,或者使Views
的行爲類似於ViewModel
並創建單獨的模板部分。我寧願爲此使用鬍子,但它不是必需的。Laravel 4 ViewModel(帶小鬍子)
是否有任何好的庫或代碼片段可以讓我擴展基本的Laravel功能,並在我的控制器和HTML模板之間插入ViewModel
。任何幫助,將不勝感激!
我不確定我完全理解你的問題 - ViewComposers不適合嗎?
根據你正在努力實現您還可以掛接到一個視圖是由之前被炒魷魚的View Composer的情況下,像這樣的內容:
應用程序/啓動/ global.php或PackageServiceProvider
\Event::listen('composing: *', function($view) {
//custom code here acting upon the instantiated View object
}
其中我已輸入composing: *
,*對應於視圖名稱,在這種情況下匹配任何視圖名稱。
通過命名您的視圖並創建響應不同命名空間的事件偵聽器,您可以更進一步您可以爲鬍鬚視圖註冊一個新命名空間,然後僅響應該命名空間中的視圖,通常我會將我的鬍子鑑於公共目錄,使他們能夠訪問客戶端,所以你可以做這樣的事情:
應用程序/啓動/ global.php或PackageServiceProvider
\View::addNamespace('m', public_path() . '/views');
\Event::listen('composing: m::*', function($view) {
//custom code here acting upon the instantiated View object when a namespaced mustache view is composed.
}
你會然後作出人士的意見:
View:make('m::view_name')
以使視圖
公共/視圖/ view_name.mustache
如果上述不符合你的需要,你可以在Presenter看看 - 我還沒有嘗試這樣做包,但可能是你想要的。
希望這會有所幫助,對不起,如果我誤解了你的問題
即靠攏,但我所尋找的是一個類,我可以將數據傳遞到它傳遞給前可以有功能按摩數據模板。 ViewComposers看起來非常引人注目,但是並沒有按照視圖/模板分解。我想爲每個模板呈現一個'ViewModel'。 – DanO
我編輯了我的答案 - 請參閱底部的演示者包,這可能是您要查找的內容。我還沒有使用它,因爲我發現模型中的get和set屬性方法的組合已經足以滿足我需要。 – WebweaverD