eloquent - 如何在 Eloquent 中实现这种关系?
问题描述
我有 SQL 这个查询:
选择 f.follower_id、u.fname、u.lname FROM 追随者 f INNER JOIN users u ON f.follower_id = u.id 其中 f.user_id = $user_id AND u.status = 1 按 fname、lname 排序 限制 10
我有两个模型:用户和追随者。
一个用户可以有很多粉丝,每个粉丝都有自己的用户数据。我希望能够通过执行以下操作来获取用户的所有关注者(状态为 1):
$followers = User::get_followers();
解决方案
将此添加到您的User
模型中:
public function followers()
{
return $this->belongsToMany(User::class, 'followers', 'user_id', 'follower_id')
->where('status', 1)
->orderBy('fname')
->orderBy('lname');
}
然后你可以像这样访问它们:
$followers = $user->followers;
推荐阅读
- azure-devops-self-hosted-agent - 如何满足 Visual Studio 对自托管 docker 构建代理的需求?
- javascript - 在href中的函数不能使用javascript
- reactjs - 如何导航到 React Router 中的部分
- python - 获取数据集的无效行
- c# - C# & Entity Framework Core 创建实体多对多关系与自身作为多个父母和多个孩子
- ios - 如何使用 RxSwift 重新加载数据 UICollectionView?
- android - 在Android中与文本对齐
- jquery - 如何在 Jquery Typeahead 的结果列表底部添加帮助文本?
- javascript - 如何在单个表中迭代多个状态
- firebase - 如何分配uid?