是否可以从多个控制器输出到同一视图。我有一个叫做“仪表板”的视图。我有两个变量:$users
和$friends
。我想从不同的控制器向这些变量发送数据。我需要将两个控制器添加到同一路线吗?
观点:
<div class="panel friendlist" id="friendlist">
<div class="panel-heading"><h3 class="panel-title">Result List</h3>
</div>
<div class="panel-body">
<ul class="list-group">
@foreach($friends as $friend)
<li class="list-group-item"><a href="">{{ $friend->username }}</a>
</li>
@endforeach
</ul>
</div>
</div>
</section>
<section class="row posts">
<div class="col-md-6 col-md-3-offset">
<header><h3>other posts</h3></header>
@foreach($posts as $post)
<article class="post">
<p>{{ $post->content }}</p>
<div class="info">Posted by {{ $post->user->username }} on {{ $post->created_at }}</div>
后控制器:
public function getDashboard()
{
$posts = Post::orderBy('created_at','desc')->get();
return view('dashboard',['posts' => $posts]);
}
好友控制器:
public function getFriends()
{
$friends = Auth::user()->friends()->where('status','accepted')->get();
return view('dashboard',['friends' => $friends]);
}
当前路线:
Route::get('/dashboard',[
'uses' => 'PostController@getDashboard',
'as' => 'dashboard',
'middleware' => 'auth'
]);
最佳答案
@amartya barua,您可以使用view composer为多个视图共享一些变量https://laravel.com/docs/5.8/views,也可以创建baseservice,编写可重用的getter并将baseservice注入控制器,这样您就可以访问控制器所需的getter,如果有任何问题,请评论我的答案。