Laravel 5中怎么實現(xiàn)多個視圖共享數(shù)據(jù),針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,成都創(chuàng)新互聯(lián)公司面向各種領(lǐng)域:辦公窗簾等成都網(wǎng)站設(shè)計、成都全網(wǎng)營銷解決方案、網(wǎng)站設(shè)計等建站排名服務。
1 | {{ $cqh }} |
現(xiàn)在的要求是每個頁面都會用到這個變量,如何共享這個數(shù)據(jù)呢?
一般這樣的操作我會在Laravel服務的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方法單獨對這個navigation.blade.php進行傳送數(shù)據(jù),方法如下
1 2 3 4 5 6 | public function boot() { view()->composer('navigation', function ($view) { $view->with('cqh','chenqionghe'); }); } |
以上是使用閉包的形式來完成這個操作,其實這和路由一樣,也可以用類來代替,Laravel里叫組件,方法如下
1 2 3 4 | public function boot() { View::composer('navigation', 'App\Http\ViewComposers\MyViewComposer'); } |
上面這樣就是注冊了視圖組件,并且在每次 navigation視圖渲染的時候,MyViewComposer@compose 都將會被執(zhí)行。
下面我們來看這個組件怎么定義
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 方法就會被調(diào)用,并且傳入一個 Illuminate\Contracts\View\View 實例。你可以使用 with 方法來把數(shù)據(jù)綁定到 view。
注意:方法一和方法二其實是有區(qū)別的,方法一是對所有的視圖都傳遞的cqh數(shù)據(jù),而方法二只是對navigation視圖傳遞了cqh數(shù)據(jù)
如果方法二要達到方法一的效果,可以這樣
1 2 3 4 | View::composer('*', function($view) { // }); |
這樣就會對所有視圖進行傳遞了
也可以針對多個視圖指定MyViewComposer組件
1 | View::composer(['navigation', 'footer'], 'App\Http\ViewComposers\MyViewComposer'); |
也可以使用 composers 方法來同時定義一群視圖組件
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' ]); |
關(guān)于Laravel 5中怎么實現(xiàn)多個視圖共享數(shù)據(jù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
本文題目:Laravel5中怎么實現(xiàn)多個視圖共享數(shù)據(jù)
瀏覽地址:http://sd-ha.com/article4/josdoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、響應式網(wǎng)站、用戶體驗、靜態(tài)網(wǎng)站、做網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)