Laravel Eloquent,仅选择存在关系的行

Ken*_*yon 8 php laravel eloquent laravel-4

我试图从表中选择,但我只想选择具有现有关系的东西.

例如,如果我有用户和评论,并且用户有很多评论,我想做类似的事情:

User::hasComments()->paginate(20);
Run Code Online (Sandbox Code Playgroud)

所以,我只想选择至少有一条评论的用户,并对该查询的结果进行分页.有没有办法做到这一点?

Don*_*nic 22

根据Laravel用于查询关系的Eloquent文档(查找"查询关系存在"子标题),这应该有效:

User::has('comments')->paginate(20);
Run Code Online (Sandbox Code Playgroud)

  • 请注意`has`可能会使用`EXISTS`相关子查询,这可能是一个重要的性能瓶颈. (3认同)
  • 我刚刚加入表,然后 `->whereNull('table.deleted_at');` (2认同)