经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
Laravel基础_关于view共享数据的示例讲解
来源:jb51  时间:2019/10/15 8:39:28  对本文有异议

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. //视图间共享数据
  9. view()->share('share','share');
  10. }

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

  1. {{ $share }}

就会输出这个变量。

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

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

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

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

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

  1. {{ $user['name'] }}
  2. {{ $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. });

以上这篇Laravel基础_关于view共享数据的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号