日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Laravel 5 多个视图共享数据的方法

發(fā)布時(shí)間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Laravel 5 多个视图共享数据的方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

我們都知道模板一般會(huì)用到繼承,導(dǎo)航欄就是一個(gè)很好的例子,但是導(dǎo)航欄的數(shù)據(jù)如何共享,比如有個(gè)導(dǎo)航的文件叫在view/navigation.blade.php 為了簡單一點(diǎn),文件里只有設(shè)置了一個(gè)變量
1 {{?$cqh?}}
現(xiàn)在的要求是每個(gè)頁面都會(huì)用到這個(gè)變量,如何共享這個(gè)數(shù)據(jù)呢? 一般這樣的操作我會(huì)在Laravel服務(wù)的boot方法里設(shè)置,下面介紹兩種共享數(shù)據(jù)的方法

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

1 2 3 4 public?function?boot() { ????View::share('cqh','chenqionghe'); }
這是使用外觀模式,也可以直接使用view()方法,
1 view()->share('cqh',?'chenqionghe');

?

方法二:使用composer方法單獨(dú)對這個(gè)navigation.blade.php進(jìn)行傳送數(shù)據(jù),方法如下
1 2 3 4 5 6 public?function?boot() { ????view()->composer('navigation',?function?($view) { ????????$view->with('cqh','chenqionghe'); ????}); }
以上是使用閉包的形式來完成這個(gè)操作,其實(shí)這和路由一樣,也可以用類來代替,Laravel里叫組件,方法如下
1 2 3 4 public?function?boot() { ????View::composer('navigation',?'App\Http\ViewComposers\MyViewComposer'); }
上面這樣就是注冊了視圖組件,并且在每次 navigation視圖渲染的時(shí)候,MyViewComposer@compose 都將會(huì)被執(zhí)行。 下面我們來看這個(gè)組件怎么定義
1 2 3 4 5 6 7 8 9 <?php?namespace?App\Http\ViewComposers; use?Illuminate\Contracts\View\View; class?MyViewComposer { ????public?function?compose(View?$view) ????{ ????????$view->with('cqh','chenqionghe'); ????} }
在視圖被渲染之前,視圖組件的 compose 方法就會(huì)被調(diào)用,并且傳入一個(gè) Illuminate\Contracts\View\View 實(shí)例。你可以使用 with 方法來把數(shù)據(jù)綁定到 view。 注意:方法一和方法二其實(shí)是有區(qū)別的,方法一是對所有的視圖都傳遞的cqh數(shù)據(jù),而方法二只是對navigation視圖傳遞了cqh數(shù)據(jù) 如果方法二要達(dá)到方法一的效果,可以這樣
1 2 3 4 View::composer('*',?function($view) { ????// });
這樣就會(huì)對所有視圖進(jìn)行傳遞了 也可以針對多個(gè)視圖指定MyViewComposer組件
1 View::composer(['navigation',?'footer'],?'App\Http\ViewComposers\MyViewComposer');

?

也可以使用 composers 方法來同時(shí)定義一群視圖組件
1 2 3 4 5 View::composers([ ????'App\Http\ViewComposers\AdminComposer'?=> ['admin.index',?'admin.profile'], ????'App\Http\ViewComposers\UserComposer'?=>?'user', ????'App\Http\ViewComposers\ProductComposer'?=>?'product' ]);

轉(zhuǎn)載于:https://www.cnblogs.com/mouseleo/p/10312510.html

總結(jié)

以上是生活随笔為你收集整理的Laravel 5 多个视图共享数据的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。