Laravel返回多个视图

时间:2014-10-17 19:44:27

标签: php laravel laravel-4

我正在尝试使用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
                        ));

                    }

我只需要一种返回多个视图的方法。 谢谢你的帮助! 托比。

1 个答案:

答案 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来进行更强大和可读的数据处理。