Laravel显示最后的回复留在帖子上

时间:2017-07-07 18:31:50

标签: php laravel laravel-5 laravel-5.2 laravel-5.1

我试图显示留在帖子上的最后一个回复。但只有它的名称和日期。我尝试了以下的事情

我认为这个应该做的是查看帖子的回复。按ID排序,然后显示第一个用户名。但它不起作用。 $topic->replies->sortBydesc('id')->first()->user->username }}

我也尝试了这个,我在整个论坛中请求了所有回复并显示了最后一个。它起作用但我不是那个与帖子有关的人。 {{ $allposts->sortBydesc('id')->first()->user->username }}

有谁知道我怎么做这个工作? 目前,我将这两个传递到视图中(这些没有任何问题,它们有效,但我认为应该添加一些内容)

public function show($id)
{


    $topics = Topic::with('theme')->find($id);
    $theme = Theme::with('topics')->find($id);

    return view('themes.theme')->with('topics', $topics)->with('theme', $theme);
}

提前致谢

1 个答案:

答案 0 :(得分:0)

如果您想要获得topic replies,则需要急切加载。此外,如果您与user有关系,他们也会急切地加载它。

使用latest()方法获取最新回复。

仅限namedate我们有select()

public function show($id)
{
    $topics = $topic->with('replies' => function($query) {
        $query->with('user')->select('name', 'created_at')->latest();
    });
    $theme = Theme::with('topics')->find($id);

    return view('themes.theme', compact('topics', 'theme'));
}