【发布时间】:2021-02-03 23:16:04
【问题描述】:
消息表列是
| messages_id(pk) | user_id | target_id | message | created_at
User_id 有发送者用户的 id。 Target_id 有接收者用户的 id
简单的用户表与 HasMany 的 MessageTable 有关系。
public function message()
{
return $this->hasMany('App\Model\TableModel\Message', 'user_id', 'user_id');
}
我想获取用户数据和从 user_id=[1,2,3,4] 到 target_id = 5 的每条最后一条消息。
所以我尝试了这个
User::WhereIn(user_id, [1,2,3,4])
->with(['message' => function ($query) {
$query->Where('target_id', 5)->orderBy('messages_id', 'desc)->first();
}])->get();
但是这个查询返回用户的数据和一个用户的最后一条消息。
如何使用 hasMany 获取用户最后一条消息?
【问题讨论】:
标签: laravel relational-database