当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel基础_关于view共享数据的示例讲解

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-03 20:37:31 浏览: 评论:0 

今天小编就为大家分享一篇Laravel基础_关于view共享数据的示例讲解,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

1.所有视图共享数据(share)

当所有视图都需要同一个数据时,使用视图工厂的share方法。

全局帮助函数view,如果传入参数,则返回Illuminate\View\View实例,不传入参数则返回Illuminate\View\Factory实例。所以我们可以通过在服务提供者(app\Providers\AppServiceProvider.php)的boot方法中使用如下方式实现视图间共享数据:

  1. /** 
  2.  * Bootstrap any application services. 
  3.  * 
  4.  * @return void 
  5.  */ 
  6. public function boot() 
  7.  //视图间共享数据 
  8.  view()->share('share','share'); 

然后在你的任何一个视图文件中这样写:

{{ $share }}

就会输出这个变量。

2.部分视图共享数据(Composer)

当一部分视图文件中需要同一个数据的时候,比如登录信息,可以通过视图工厂的composer方法实现。

简单起见,我们还是基于AppServiceProvider,不去单独创建服务提供者。

  1. /** 
  2.  * Bootstrap any application services. 
  3.  * 
  4.  * @return void 
  5.  */ 
  6. public function boot() 
  7.  //视图间共享数据 
  8.  view()->share('share','share'); 
  9.  
  10.  //视图Composer 
  11.  view()->composer('admin',function($view){ 
  12.   $view->with('user',array('name'=>'lili','age'=>'18')); 
  13.  }); 

这样,在admin视图模板文件中就可以使用一下代码来输出。

{{ $user['name'] }}

{{ $user['age'] }}

你也可以传递数据到多个视图:

  1. view()->composer(['hello','home'],function($view){ 
  2.  $view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg')); 
  3. }); 

甚至所有视图(使用通配符*):

  1. view()->composer('*',function($view){ 
  2.  $view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg')); 
  3. });

Tags: Laravel共享数据 view共享数据

分享到: