Vous pouvez chaîner votre where
s directement, sans function(q)
. Il y a aussi un bon package de gestion des dates dans laravel, appelé Carbon
. Vous pourriez donc faire quelque chose comme :
$projects = Project::where('recur_at', '>', Carbon::now())
->where('recur_at', '<', Carbon::now()->addWeek())
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();
Assurez-vous simplement que vous avez besoin de Carbon dans composer et que vous utilisez l'espace de noms Carbon (utilisez Carbon\Carbon;) et cela devrait fonctionner.
EDIT :Comme Joel a dit , vous pourriez faire :
$projects = Project::whereBetween('recur_at', array(Carbon::now(), Carbon::now()->addWeek()))
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();