是否可以从多个控制器输出到同一视图。我有一个称为“仪表盘”的视图。我有两个变量:$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'
]);
答案 0 :(得分:0)
@Amartya Barua,您可以使用视图编辑器将变量共享给多个视图https://laravel.com/docs/5.8/views,或者可以创建BaseService,并编写可重用的getter并将BaseService注入到控制器中,从而可以访问控制器需要的吸气剂,如果有任何问题评论我的答案
答案 1 :(得分:0)
您可以做的简单的事情就是
首先创建一个模型,然后在该模型中为这两个变量值创建两个函数。
在要使用仪表板作为视图的控制器中,将模型添加到控制器中,然后简单地传递该模型的调用函数,然后将此函数值传递给视图。