版权声明:http://www.itchuan.net https://blog.csdn.net/sinat_37390744/article/details/88675158
实际开发时,我们需要多个视图共享同一个数据,通常由下列三种方法
1、每个页面使用该数据都使用DB::all()获取数据 (不推荐)
缺点:每次都要在控制器中使用查询函数,过程繁琐不推荐
2、所有页面共享视图(推荐)
优点:过程简单方便(推荐)
方法如下:
(1)AppServiceProvider.php中
$topics = \App\Topic::all();
$posts = \App\Post::all;
\View::share(['topics'=>$topics,'posts'=>$posts]);
(2)在视图中直接使用变量即可
3、部分(全部)视图共享数据(推荐)
优点:过程简单方便(推荐)
方法如下:
(1)AppServiceProvider.php中
$topics = \App\Topic::all();
$posts = \App\Post::all;
View::composer(['user.index','post.index'],function ($view){
$view->with(['topics'=>$topics,'posts'=>$posts]);
})
//也可以向所有视图传递数据
View::composer('*',function ($view){
$view->with(['topics'=>$topics,'posts'=>$posts]);
})
(2)在视图中直接使用变量即可