layout中使用到的變量,如果從控制器傳參,需要每個視圖都重複操作! 如何解決一次運算後,將結果傳遞給layout中,供所有檢視使用(不想在layout檢視中出現業務代碼)。
eg: 1. 權限管理,依照不同的用戶,設定不同的選單! 2. 選單中的動態數字,例如 【當日訂單(50)】,那個50需要所有的控制器取得資料後,再傳遞給視圖!
闭关修行中......
有兩種方法可以解決:
第一:傳統的ViewComposerProvider
ViewComposerProvider
class NavViewComposerProvider extends ServiceProvider { public function boot(){ view()->composer('partials.nav', function ($view) { $view->with('userAtLayout', User::find(Auth::user()->id)); //根据自己的需求改呗 }); } }
第二,Laravel 5.1新特性@inject:
@inject('var','Class') // var 变量名 Class绑定的类名
例如你可以這樣:
@inject('nav','App\SiteNav')
在SiteNav中查詢資料就可以了。
題外話:認真看文檔,可以解決你越到的80%的問題。
Happy Hacking
雷雷
樓上說的方法都不可靠,取得不了當前url參數來傳入你的函數中的
有兩種方法可以解決:
第一:傳統的
ViewComposerProvider
第二,Laravel 5.1新特性@inject:
例如你可以這樣:
在SiteNav中查詢資料就可以了。
題外話:認真看文檔,可以解決你越到的80%的問題。
Happy Hacking
雷雷
樓上說的方法都不可靠,取得不了當前url參數來傳入你的函數中的