2017-11-26 32 views
1

によっては、私は3つのモデルを持っています。シフトには、多くのShiftRequestを含めることができます。私は熱心な読み込みでシフト要求のないすべてのシフトを取得しようとしています。ここで私が持っているものです:Laravel:多くのシフトを持つことができます</p> <ul> <li>User.php</li> <li>Shift.php</li> <li>ShiftRequest.php</li> </ul> <p>ユーザー:フィルタリングの空の関係

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配列に制約を入れることを考えましたが、それは1対多の関係であるため、shift_requestテーブルには制約がありません。

+0

私はLarvel人だけど、多分これが役立つを作ります/docs/5.5/queries#unions – MEmerson

+1

@MEmerson返信いただきありがとうございます。 'request'は列ではなく(モデル関係関数です)、シフトテーブルにはshift_request_idがありません。これは1対多の関係であるため、このケースではあなたの提案はうまくいかないでしょう...私は何かが足りない – Hugo

答えて

関連する問題

 関連する問題