【发布时间】:2022-01-07 08:27:56
【问题描述】:
基本上我有属于许多用户的用户。我们可以想象用户之间的友谊关系。
所以我有一个关系的数据透视表,其中包含 2 个用户的 id 和一个附加字段“created_at”。
用户表:id、名称
friend_user 表:user_id、friend_id、created_at
在我的用户模型中,我有一个返回用户集合的好友函数:
public function friends() {
return $this->belongsToMany(User::class, 'friend_user', 'user_id', 'friend_id');
}
我的目标是获取用户之间所有关系的列表。通过 User::all() 上的循环,我可以轻松获得所有这些关系,一个又一个用户:
$users = User::all();
foreach ( $users as $user ) {
foreach ( $user->friends as $friend ) {
return [$user->name . 'is friend with ' . $friend->name];
}
}
但我想让它们按“created_at”排序,而不是关系中的用户。
有没有一种简单的方法可以通过 eloquent 或其他方式来做到这一点?
感谢您的帮助。
【问题讨论】:
标签: mysql laravel eloquent dynamics-al