2017-07-18 90 views
1

電流的關係:雄辯查詢未返回與預期結果whereHas

  • 診所的hasMany顧問
  • 一個顧問belongsToMany治療(透視表關係)

一診所可能沒有顧問,顧問可能沒有治療。我只想要返回has顧問,其中has治療,其中包括與$treatment_id(因此has存在檢查)相匹配的治療的診所。

當前的嘗試(返回0結果):

clinic::whereHas('consultants.treatments', function ($query) use ($treatment_id) { 
       $query->where('treatment_id', $treatment_id); 
      }) 
     ->paginate(10); 

我覺得我需要whereHas函數內的whereHas,以首先確定是否顧問具有治療,但是,如果這個邏輯是正確的,我該如何在功能中處理它。

我期待着返回3個結果,但目前它是0

我怎樣才能做到這一點?非常感謝,。

回答

0

因爲它是多對多的,它應該是:

Clinic::whereHas('consultants.treatments', function ($query) use ($treatment_id) { 
     $query->where('id', $treatment_id); 
    }) 
    ->paginate(10);