Puoi concatenare il tuo where
s direttamente, senza function(q)
. C'è anche un bel pacchetto di gestione delle date in laravel, chiamato Carbon
. Quindi potresti fare qualcosa come:
$projects = Project::where('recur_at', '>', Carbon::now())
->where('recur_at', '<', Carbon::now()->addWeek())
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();
Assicurati solo di richiedere Carbon nel compositore e di utilizzare lo spazio dei nomi Carbon (usa Carbon\Carbon;) e dovrebbe funzionare.
EDIT:Come Ha detto Joel , potresti fare:
$projects = Project::whereBetween('recur_at', array(Carbon::now(), Carbon::now()->addWeek()))
->where('status', '<', 5)
->where('recur_cancelled', '=', 0)
->get();