本篇文章为大家展示了如何在Laravel中实现view共享数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
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共享数据,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。