我在Laravel中得到了这个查询:
return Forum::with(['users' => function($query){
$query->select('user.id', 'user.name', 'user.last_name');
}])->latest()->withCount('messages')->paginate(10);
这将返回在论坛中发布消息的所有用户。
在我的论坛模型中我发现了这些关系:
public function users()
{
return $this->belongsToMany(User::class, 'message');
}
public function messages()
{
return $this->hasMany(Message::class);
}
我只想收到发布消息的最新用户。我怎么能这样做?
答案 0 :(得分:1)
您可以按消息关系检索最后一个用户,请尝试以下操作:
return Forum::with(['messages' => function($query){
$q->orderBy('created_at', 'desc');
},'messages.users'])->first();
答案 1 :(得分:0)
使用has()
方法并按降序排列created_at。
User::has('forums.messages')->orderBy('created_at','desc')->first();