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

时间:2021-05-26

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

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

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

/** * Bootstrap any application services. * * @return void */ public function boot() { //视图间共享数据 view()->share('share','share'); }

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

{{ $share }}

就会输出这个变量。

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

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

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

/** * 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视图模板文件中就可以使用一下代码来输出。

{{ $user['name'] }}{{ $user['age'] }}

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

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共享数据的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章