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