2016-08-08 79 views
0

我有2個模型,用戶模型和Post模型。我正在嘗試獲取在某個日期範圍內發佈的用戶的集合。我只是迷失在如何將兩個模型結合在一起。兩者之間有一對多的關係。Laravel獲取收藏集

用戶模型:

public function posts() 
{ 
    return $this->hasMany('App\Models\Post', 'user_id'); 
} 

所以,我想用戶的集合,職位日期日期2之間1 &,如果用戶有那些日期之間的職位,我希望這些崗位的集合。我知道我可以使用WhereBetween作爲查詢構建器,但我可以使用它來進行口頭表達嗎?另外,如何將具有這些帖子的用戶模型排序? filter()方法如何?

$users = Users::all(); 

$users = $users->filter(function() { 
    foreach ($users as $user) 
    { 
     if ($user->posts->whereBetween(date 1, date 2)) 
     { 
     return true; //something like that 
     } 
    } 
}); 

回答

3

最好是根據需要加載您的關係模型,然後處理結果。不需要使用if檢查。

$users = Users::with(['posts' => function($query) { 

    $query->whereBetween(date 1, date 2); 

}])->get(); 

更多信息:Eager Loading

+0

或者你可以使用'whereHas' :) – Maraboc