我试图显示留在帖子上的最后一个回复。但只有它的名称和日期。我尝试了以下的事情
我认为这个应该做的是查看帖子的回复。按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);
}
提前致谢
答案 0 :(得分:0)
如果您想要获得topic
replies
,则需要急切加载。此外,如果您与user
有关系,他们也会急切地加载它。
使用latest()
方法获取最新回复。
仅限name
和date
我们有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'));
}