前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel5.8 共享视图变量

Laravel5.8 共享视图变量

作者头像
无道
发布2019-11-13 15:58:15
9090
发布2019-11-13 15:58:15
举报
文章被收录于专栏:无道编程无道编程

共享视图变量

背景介绍

通常我们使用Laravel开发项目,一般情况下都会把公共区域分离,比如我的博客网站的侧边栏:

截图-1562648718
截图-1562648718

肯定会把这个作为单独的一个文件,来保存使用。

但里面的数据我们不能在每个控制器都去获取一次,然后再分配出去。

所以这里我们就共享视图的变量。

方法

在服务提供者的boot方法内,我们把所有需要的数据先获取到,然后利用view()分配。

示例代码如下:

代码语言:javascript
复制
public function boot()
{
    $common_data = self::getIndexCommonData();
    view()->share('common_data', $common_data);
}

$common_data就是我要分配给侧边栏的变量,通过view()->share();就可以分配出去了。 然后在每个页面的侧边栏都可以获取到这些数据库。

所以有几个注意点:

1.你可以在默认的app/Providers/AppServiceProvider.php提供者里面分配变量,但是我更推荐创建一个单独的服务提供者来分配。因为根据类的单一职责原则,一个类的功能越明确,越单一越好。

比如:

代码语言:javascript
复制
php artisan make:provider View/ViewServiceProvider

但是别忘了,自己创建的服务提供者需要在config/app.php里面注册。

截图-1562649650
截图-1562649650

2.提供的变量名尽量特殊一点,不然有某一天万一你就忘了这个变量名是在侧边栏的"全局"变量里面,被覆盖了怎么办?【PS:此处我是猜的,没测试过。但特殊点总归是好的,也不影响什么。】

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 共享视图变量
    • 背景介绍
      • 方法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档