Laravel Get Collection for a Collection -


i have 2 models, user model , post model. trying collection of users have posted between date range. lost on how tie 2 models together. there one-to-many relationship between two.

user model:

public function posts() {     return $this->hasmany('app\models\post', 'user_id'); } 

so, want collection of users posts between date 1 & date 2 , if user has posts between dates, want collection of posts. know can use wherebetween query builder, can use eloquent? also, how sort entire user model ones have posts? how filter() method?

$users = users::all();  $users = $users->filter(function() {    foreach ($users $user)    {       if ($user->posts->wherebetween(date 1, date 2))       {           return true; //something       }    } }); 

it's better eager load relation model wanted , work result. no need use if checks.

$users = users::with(['posts' => function($query) {      $query->wherebetween(date 1, date 2);  }])->get(); 

more information: eager loading


Comments