假设我有以下主要观点:
<div>
<div>
@yield('content')
</div>
<div>
@include('sidebar')
</div>
<div>
@include('footer')
</div>
</div>
我如何确保包含的视图具有自己的数据?例如,在侧边栏中,我想显示新的博客文章评论。在页脚中,我想显示新用户和博客文章。也许使用@include
不是实现此目的的正确方法?
答案 0 :(得分:0)
在这种情况下,您可能要使用View Composers。
答案 1 :(得分:0)
在View Composer中编写逻辑,然后在引导方法中使用服务提供商调用它
View::composer(
['partials.content', 'partials.sidebar', 'partials.footer], 'App\Http\ViewComposers\MyViewComposer'
);
答案 2 :(得分:0)
我已经尝试过了,并且可以和我一起工作:
@include('content',array("key"=>"value"))
答案 3 :(得分:0)
在您的应用程序中,应用程序服务提供商的启动方法会执行类似的操作
View::composer('sidebar',function($view){
$comments= Blog::latest()->comments;
$view->with('comments',$comments);
})
View::composer('footer',function($view){
$users= User::latest();
$view->with('users',$users);
})
//侧边栏
然后在视图文件中执行类似的操作
@foreach($comments as $comment)
{{$comment->data}}
@endforeach`