Laravel哪里有过滤子关系

时间:2020-10-15 09:13:17

标签: laravel

是否有任何过滤员工和人手表记录的方法也没有返回?

$result = Pwra::with('purchaseOrder', 'manpower')
->where('pwra_dt', $date)
->where('time_session', $session)
->whereHas('manpower.employees', function ($q) {
    $q->where('status', 1);
})
->get();

Pwra类

public function manpower()
{
    return $this->hasMany('App\Models\Manpower', 'pwra_uuid', 'pwra_uuid');
}

人力课

public function employee()
{
    return $this->hasOne('App\Models\Employees', 'employees_uuid', 'employees_uuid')->where('status', 1);
}

我期望的是:当员工状态= 0时,它甚至不会返回任何记录。

1 个答案:

答案 0 :(得分:0)

您可以尝试2级whereHas()

$result = Pwra::with('purchaseOrder', 'manpower')
    ->where('pwra_dt', $date)
    ->where('time_session', $session)
    ->whereHas('manpower', function ($q) {
        $q->whereHas('employees',function($subQ){
            $subQ->where('status', 1);
        });
    })
    ->get();

whereHas('manpower.employees'无效

相关问题