国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Laravel 5 多個視圖共享數據的方法

2020-03-22 20:17:14
字體:
來源:轉載
供稿:網友
  • 我們都知道模板一般會用到繼承,導航欄就是一個很好的例子,但是導航欄的數據如何共享,比如有個導航的文件叫在view/navigation.blade.php為了簡單一點,文件里只有設置了一個變量
    {{ $cqh }}
    現在的要求是每個頁面都會用到這個變量,如何共享這個數據呢?一般這樣的操作我會在Laravel服務的boot方法里設置,下面介紹兩種共享數據的方法

    方法一:使用View:share方法,如CqhServiceProvider里

    	html' target='_blank'>public function boot()	{		View::share('cqh','chenqionghe');	}
    這是使用外觀模式,也可以直接使用view()方法,
    view()->share('cqh', 'chenqionghe');
    方法二:使用composer方法單獨對這個navigation.blade.php進行傳送數據,方法如下
    	public function boot()	{		view()->composer('navigation', function ($view) {			$view->with('cqh','chenqionghe');		});	}
    以上是使用閉包的形式來完成這個操作,其實這和路由一樣,也可以用類來代替,Laravel里叫組件,方法如下
    	public function boot()	{		View::composer('navigation', 'App/Http/ViewComposers/MyViewComposer');	}
    上面這樣就是注冊了視圖組件,并且在每次 navigation視圖渲染的時候,MyViewComposer@compose 都將會被執行。下面我們來看這個組件怎么定義
    <?php namespace App/Http/ViewComposers;use Illuminate/Contracts/View/View;class MyViewComposer{    public function compose(View $view)    {        $view->with('cqh','chenqionghe');    }}
    在視圖被渲染之前,視圖組件的 compose 方法就會被調用,并且傳入一個 Illuminate/Contracts/View/View 實例。你可以使用 with 方法來把數據綁定到 view。注意:方法一和方法二其實是有區別的,方法一是對所有的視圖都傳遞的cqh數據,而方法二只是對navigation視圖傳遞了cqh數據如果方法二要達到方法一的效果,可以這樣
    View::composer('*', function($view){    //});
    這樣就會對所有視圖進行傳遞了也可以針對多個視圖指定MyViewComposer組件
    View::composer(['navigation', 'footer'], 'App/Http/ViewComposers/MyViewComposer');
    也可以使用 composers 方法來同時定義一群視圖組件
    View::composers([    'App/Http/ViewComposers/AdminComposer' => ['admin.index', 'admin.profile'],    'App/Http/ViewComposers/UserComposer' => 'user',    'App/Http/ViewComposers/ProductComposer' => 'product']);
    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 湟中县| 江山市| 香港 | 长沙县| 封开县| 景东| 恩施市| 丰县| 九龙县| 闽清县| 马关县| 奉节县| 襄樊市| 泸西县| 通道| 昌邑市| 鹤山市| 平安县| 兴宁市| 滨州市| 普定县| 伽师县| 麻江县| 琼海市| 恩平市| 临沂市| 定兴县| 东乡族自治县| 台湾省| 讷河市| 奉贤区| 定州市| 临澧县| 万州区| 荃湾区| 柘城县| 三明市| 平凉市| 仪征市| 屏边| 铁岭县|