计算Laravel中遥远相关的对象

时间:2019-01-10 12:04:52

标签: laravel eloquent laravel-5.2

假设您在Laravel中拥有三种口才模型:

Person
 - id
 - name

Object
 - id
 - category_id
 - name

Category
 - id
 - name

PersonObject之间存在多对多关系(一个Person可以属于许多Objects,一个Object可以属于许多{ {1}},并且PeopleObject之间存在多对一的关系(许多Category属于一个Objects)。

要获取Category的{​​{1}}的数量,您可以执行类似的操作

Objects

我想拥有的是每个Person中每个$ Person::withCount('objects')->first() => App\Person { id: 1, name: 'John Doe', objects_count: 5, } 的{​​{1}}的数量,同时仍然具有Objects个实体。

我不确定Eloquent是否(或应该)在单个DB语句中执行此操作,因为通常Category会为alle实体生成一条附加语句,并具有一个Person这样的where子句

如果我必须没有Person实体,则可以执行一条SQL语句,该语句给出所需的结果:

with()

这给了我一个集合,我很可能可以将其重新映射到WHERE id IN (1, 2, 3, ...) id:

Person

我现在是否还有其他更优雅的方式?

0 个答案:

没有答案