Laravel:通过空洞的关系过滤

时间:2017-11-26 12:19:36

标签: php laravel eloquent laravel-eloquent

我有3个型号:

  • user.php的
  • Shift.php
  • ShiftRequest.php

用户可以有很多班次。一个班次可以有很多ShiftRequests。我试图通过急切加载检索所有没有转移请求的班次。这就是我所拥有的:

user.php的

public function shiftsBetween($startDate, $endDate, $with = ['shiftType'], $withoutShiftRequests = false)
{
    $q = $this->hasMany(Shift::class)
        ->between($startDate, $endDate)
        ->with($with);

    if ($withoutShiftRequests) {
        // $q->has('request');
    }
    return $q->get();
}

如果我添加->has('request'),它会向我提供所有有班次请求的班次。是否有相反的功能(例如notHas('request'))?

我还考虑在$with数组中设置一个约束,但由于它是一对多的关系,所以shift_request表中没有任何内容可以约束它。

0 个答案:

没有答案