Laravel5.8 共享视图变量

无道 2019-07-09 0 条评论 教程相关 阅读310 手机阅读

共享视图变量

背景介绍

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

截图-1562648718

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

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

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

方法

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

示例代码如下:

public function boot()
{
    $common_data = self::getIndexCommonData();
    view()->share('common_data', $common_data);
}

$common_data就是我要分配给侧边栏的变量,通过view()->share();就可以分配出去了。

然后在每个页面的侧边栏都可以获取到这些数据库。

所以有几个注意点:

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

比如:

php artisan make:provider View/ViewServiceProvider

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

截图-1562649650

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

全文完 [
有帮助?打赏
支付宝打赏
微信打赏
]
标签: laravel 视图
修改: 2019-07-09 13:21
这篇文章还没有评论呢~
点击刷新/生成验证码
It's me
昵称:无道
坐标:成都
性别:
一个人,一介学生,一个儿子~ 愿你我都被世界温暖以待
迷思爱 公众号

新建了个公众号,会不定期分享一些小玩意,有提升效率的办公软件、有一些黑科技的软件、或教程等等。

爷~,要不关注下~~