向laravel公共模板中传值

2017-09-15 09:55:43

    在许多场景中,网页的一块区域必定会在很多页面中复用,比如说头部和尾部。

    所以我们需要把这些公用的区域提出来,变成一个单独的模块,然后我们就可以@include或@extends啦

    但是,如果我们需要对这些公用的模板传值应该怎么办呢?

    不可能每个controller的function中都传一次吧,那样显得太笨了。

    而laravel似乎给我们提供了一个比较便捷的方法,特此记录一下

    我们找到app/Providers/AppServiceProvider.php文件,在boot方法中写入

    $redis = new RedisRepository();
    view()->composer(['layouts.front.main_header','layouts.front.main_header2','layouts.front.main_footer'], function ($view) use ($redis) {
    if(is_null($redis->getCacheByName('systemInfo')))
    {
        $systemInfo = (new SystemRepository())->getSystemById();
        $redis->setCacheByName('systemInfo',$systemInfo);
    }else{
        $systemInfo = $redis->getCacheByName('systemInfo');
    }
    $view->with('systemInfo',$systemInfo);
});

    就实现了单独对这些公用的模板传值的问题,特此记录一下