我正在尝试使用laravel框架返回多个视图。当我返回变量时,它只通过循环一次,因此页面上只显示一条注释。
foreach($index_comments as $comments){
$commentComment = $comments->comment;
$index_children = NULL;
$getUser = DB::table('users')->where('id', '=', $comments->from_user_id)->get();
foreach ($getUser as $user) {
$firstName = $user->first_name;
$lastName = $user->last_name;
}
return View::make('feeds.comments')->with(array(
'firstName' => $firstName,
'lastName' => $lastName,
'commentComment' => $commentComment,
'index_children' => $index_children
));
}
我只需要一种返回多个视图的方法。 谢谢你的帮助! 托比。
答案 0 :(得分:2)
您似乎还不太了解Laravel和/或PHP的概念。所以让我们从头开始:我们想要获取所有注释,输出注释以及编写注释的用户的名称。
在最基本的层面上,我们可以使用查询构建器直接从数据库中获取它:
public function showComments()
{
$commentData = DB::table('comments')
->join('users', 'users.id', '=', 'comments.from_user_id')
->get(['text', 'firstName', 'lastName']);
return View::make('feeds.comments')->with('commentData', $commentData)
}
在你看来:
@foreach($commentData as $comment)
{{ $comment->text }}
<br />
written by {{ $comment->firstName }} {{ $comment->lastName }}
<hr />
@endforeach
就是这样。您不会在每次迭代时返回视图,迭代发生在视图中。 return语句立即终止函数执行。如果你在循环中返回,它将始终在第一次迭代时退出,这就是你只获得一个结果的原因。
在下一步中,您应该使用模型和Eloquent来进行更强大和可读的数据处理。