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

吾爱主题 阅读:107 2021-09-02 17:03:00 评论:0

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

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

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

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

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

?
1 {{ $share }}

就会输出这个变量。

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

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

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

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

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

?
1 2 {{ $user [ 'name' ] }} {{ $user [ 'age' ] }}

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

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

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

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

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

原文链接:https://blog.csdn.net/csdn_yasin/article/details/51995156

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容