我有 2 个模型,一个用户模型和一个帖子模型。我正在尝试获取在特定日期范围内发布的用户的集合。我只是不知道如何将这两个模型结合在一起。两者之间存在一对多的关系。
用户型号:
public function posts()
{
return $this->hasMany('App\Models\Post', 'user_id');
}
Run Code Online (Sandbox Code Playgroud)
因此,我想要一个帖子在日期 1 和日期 2 之间的用户集合,并且如果用户在这些日期之间有帖子,我想要这些帖子的集合。我知道我可以使用 whereBetween 作为查询生成器,但是我可以将其用于雄辩吗?另外,如何按包含这些帖子的用户模型对整个用户模型进行排序?filter() 方法怎么样?
$users = Users::all();
$users = $users->filter(function() {
foreach ($users as $user)
{
if ($user->posts->whereBetween(date 1, date 2))
{
return true; //something like that
}
}
});
Run Code Online (Sandbox Code Playgroud)
最好根据需要立即加载关系模型,然后使用结果。无需使用 if 检查。
$users = Users::with(['posts' => function($query) {
$query->whereBetween(date 1, date 2);
}])->get();
Run Code Online (Sandbox Code Playgroud)
更多信息:预加载
| 归档时间: |
|
| 查看次数: |
2628 次 |
| 最近记录: |