Możesz połączyć swój where
s bezpośrednio, bez function(q)
. W laravelu jest też fajny pakiet do obsługi dat, nazwany Carbon
. Możesz więc zrobić coś takiego:
$projects = Project::where('recur_at', '>', Carbon::now())
->where('recur_at', '<', Carbon::now()->addWeek())
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();
Tylko upewnij się, że potrzebujesz Carbon w kompozytorze i używasz przestrzeni nazw Carbon (użyj Carbon\Carbon;) i powinno działać.
EDYCJA:Jak Joel powiedział , możesz zrobić:
$projects = Project::whereBetween('recur_at', array(Carbon::now(), Carbon::now()->addWeek()))
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();