laravel 如果透過父類別層操作 將參數 傳遞到 Blade頁面佈局中
阿神
阿神 2017-05-16 16:56:01
0
3
416

layout中使用到的變量,如果從控制器傳參,需要每個視圖都重複操作!
如何解決一次運算後,將結果傳遞給layout中,供所有檢視使用(不想在layout檢視中出現業務代碼)。

eg:
1. 權限管理,依照不同的用戶,設定不同的選單!
2. 選單中的動態數字,例如 【當日訂單(50)】,那個50需要所有的控制器取得資料後,再傳遞給視圖!

阿神
阿神

闭关修行中......

全部回覆(3)
迷茫

有兩種方法可以解決:

第一:傳統的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

巴扎黑

雷雷

PHPzhong

樓上說的方法都不可靠,取得不了當前url參數來傳入你的函數中的

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板