zoukankan      html  css  js  c++  java
  • Laravel视图共享数据

    Laravel视图共享数据

    最近在用lavavel过程中想实现公共头部尾部需要的配置数据在所有的页面中都可以使用,便查看了官方文档,在此做一个总结:

    一. 修改 ComposerServiceProvider 服务

      在app/Providers目录下面找到ComposerServiceProvider.php 文件,将其修改成如下面类似:

    <?php
    
    namespace AppProviders;
    
    use IlluminateSupportServiceProvider;
    
    class ComposerServiceProvider extends ServiceProvider
    {
        /**
         * Bootstrap the application services.
         *
         * @return void
         */
        public function boot()
        {
            view()->composer(
                'home.*',
                'AppHttpViewComposersBaseInfoComposer'
            );
        }
    
        /**
         * Register the application services.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    }

    注意:composer的第一个参数是需要公用数据的试图问题,我这边是home下的所有文件,第二个参数是具体要执行的文件。

    二 . 处理数据获取并渲染

    创建AppHttpViewComposersBaseInfoComposer.php 这个文件,将其修改成如下面类似:

    <?php
    
    namespace AppHttpViewComposers;
    
    use IlluminateViewView;
    use AppHttpModelsBackendNav;
    use AppHttpModelsBackendConfig;
    
    class BaseInfoComposer
    {
        /**
         *  将数据绑定到视图。
         *
         * @param  View  $view
         * @return void
         */
        public function compose(View $view)
        {
            $view->with([
                'nav'=>Nav::where('is_delete',1)->orderBy('sort','desc')->get(),
                'base'=>json_decode(Config::where('name','基本配置')->value('configs'),true),
                'other'=>json_decode(Config::where('name','其它配置')->value('configs'),true),
                ]);
        }
    }

    三. 注册服务

    config/app.php文件下的providers数组中进行注册:

    AppProvidersComposerServiceProvider::class,

    再在页面中就都可以调用了

  • 相关阅读:
    webpack-bundle-analyzer使用
    HTTP1.0,HTTP1.1和HTTP2.0区别
    document.readyState
    async和defer
    页面生命周期
    key的理解
    解释型语言和编译型语言
    AMD/CMD/CommonJS与ES6 Module的区别
    vue的keep-alive原理
    数字钱包metaplex-foundation
  • 原文地址:https://www.cnblogs.com/crazytata/p/10209000.html
Copyright © 2011-2022 走看看