道者编程

Laravel视图间共享数据,指定视图共享数据

一:所有视图间共享数据,Service Provider 定义服务类

1:在app\Providers目录下,把AppServiceProvider.php 复制一份,然后重命名,比如TopServiceProvider.php,也可以直接在AppServiceProvider.php中进行。

2:修改class 名称

3:注册服务提供者,打开config目录下的app.php,在里面添加刚才定义的服务类

/*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,
        App\Providers\TopServiceProvider::class, //这个是刚刚新加的
4:打开app\Providers目录下的TopServiceProvider.php文件,在方法boot添加一句:

 public function boot()
    { 
       view()->share('name','李小龙');
    }

这样在视图中就可以输出{{ $name }}


二:指定视图共享数据

1:上面的步骤不变,修改boot方法

public function boot()
    { 
        view()->composer('
web.main', function ($view) { 
            $data = '123';
        $view->with('name',$data);
        });
    }

这里指定name在web.main视图中共享,其他视图获取不到。如果有多个视图加数组

public function boot()
    { 
        view()->composer(
['web.main','web.top'], function ($view) { 
            $data = '123';
        $view->with('name',$data);
        });
    }

也可以用通配符,比如我要admin模块下所有视图都共享数据

public function boot()
    { 
        view()->composer('
admin.*', function ($view) { 
            $data = '123';
        $view->with('name',$data);
        });
    }

这样,admin目录下所有的视图都共享了数据。


我的视图目录,web为前台,admin为后台。


最新评论:
1楼 海南省 电信 发表于 2018-06-19 16:19:55
优秀优秀
2楼 海南省 电信 发表于 2018-06-19 16:20:05
优秀优秀
3楼 海南省 电信 发表于 2018-06-19 16:20:12
优秀优秀
共有 3 条记录  首页 上一页 下一页 尾页 1
我要评论:

看不清楚