1.所有視圖共享數(shù)據(jù)(share)
當(dāng)所有視圖都需要同一個(gè)數(shù)據(jù)時(shí),使用視圖工廠的share方法。
全局幫助函數(shù)view,如果傳入?yún)?shù),則返回Illuminate\View\View實(shí)例,不傳入?yún)?shù)則返回Illuminate\View\Factory實(shí)例。所以我們可以通過(guò)在服務(wù)提供者(app\Providers\AppServiceProvider.php)的boot方法中使用如下方式實(shí)現(xiàn)視圖間共享數(shù)據(jù):
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//視圖間共享數(shù)據(jù)
view()->share('share','share');
}
然后在你的任何一個(gè)視圖文件中這樣寫(xiě):
就會(huì)輸出這個(gè)變量。
2.部分視圖共享數(shù)據(jù)(Composer)
當(dāng)一部分視圖文件中需要同一個(gè)數(shù)據(jù)的時(shí)候,比如登錄信息,可以通過(guò)視圖工廠的composer方法實(shí)現(xiàn)。
簡(jiǎn)單起見(jiàn),我們還是基于AppServiceProvider,不去單獨(dú)創(chuàng)建服務(wù)提供者。
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//視圖間共享數(shù)據(jù)
view()->share('share','share');
//視圖Composer
view()->composer('admin',function($view){
$view->with('user',array('name'=>'lili','age'=>'18'));
});
}
這樣,在admin視圖模板文件中就可以使用一下代碼來(lái)輸出。
{{ $user['name'] }}
{{ $user['age'] }}
你也可以傳遞數(shù)據(jù)到多個(gè)視圖:
view()->composer(['hello','home'],function($view){
$view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));
});
甚至所有視圖(使用通配符*):
view()->composer('*',function($view){
$view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));
});
以上這篇Laravel基礎(chǔ)_關(guān)于view共享數(shù)據(jù)的示例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Laravel基礎(chǔ)-關(guān)于引入公共文件的兩種方式
- 在laravel框架中實(shí)現(xiàn)封裝公共方法全局調(diào)用
- laravel 實(shí)現(xiàn)向公共模板中傳值 (view composer)
- laravel框架模板之公共模板、繼承、包含實(shí)現(xiàn)方法分析
- Laravel 在views中加載公共頁(yè)面的實(shí)現(xiàn)代碼