Laravel视图合成器

一、场景:

在一个公共视图中有一侧边栏的数据。每个页面都需要展示。不能在每一个展示页面都获取数据来渲染一次。

二、解决办法:

语法:

View::composer('模板地址',function($view){
      //实现的逻辑
});

加载模板的时候都会执行右边的函数

位置:

一般放在App\Providers\AppServiceProvider中;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *注册完之后调用
     * @return void
     */
    public function boot()
    {
        //mb4String 767/4
        Schema::defaultStringLength(191);
        //视图合成器 注入专题数据
        \View::composer('layouts.sidebar',function($view){
            $topics = \App\Http\Model\Topic::all();
            $view->with('topics',$topics);
        });
    }

    /**
     * Register any application services.
     *注册前调用
     * @return void
     */
    public function register()
    {
        //
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容