Laravel Eloquent ORM还有许多其他枢轴关系存在的地方

时间:2018-03-21 12:00:47

标签: laravel eloquent laravel-5.6

我想查询hasMany关系的所有模型,这些关系也与指定的其他模型具有透视关系。

示例:

Customer:
  belongsToMany -> Entry
EntryGroup:
  hasMany -> Entry
Entry:
  belongsToMany -> Customer
  belongsTo -> EntryGroup

Customer和Entry之间的belongsToMany关系存储在数据透视表中。

我现在想要收集与EntryGroup上属于指定客户的所有条目的关系。没有这个过滤限制,我会有一个像

这样的函数
class EntryGroup extends Model
{
    ...

    public function entries()
    {
        return $this->hasMany(Entry::class);
    }
}

提前感谢您提出的任何建议。

3 个答案:

答案 0 :(得分:0)

试试这个 $客户 - >条目() - >在( 'entryGroup') - >得到();

答案 1 :(得分:0)

试试这个:

<?PHP

   $customerId = 5;

    Entry::whereHas('customer', function ($query) use ($customerId) {
        $query->where('id', $customerId);
    })->has("EntryGroup")->get();

此返回所有条目都有一个entrygroup并且属于customer id 5

答案 2 :(得分:0)

试试这个:

$entryGroup->entries()->whereHas('customer', function ($query) use ($customerId) {
    $query->where('customers.id', $customerId);
})->get();