Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel $q->where() entre datas


Você pode encadear seu where s diretamente, sem function(q) . Há também um bom pacote de manipulação de data em laravel, chamado Carbon . Então você poderia fazer algo como:
$projects = Project::where('recur_at', '>', Carbon::now())
    ->where('recur_at', '<', Carbon::now()->addWeek())
    ->where('status', '<', 5)
    ->where('recur_cancelled', '=', 0)
    ->get();

Apenas certifique-se de exigir Carbon no compositor e de estar usando o namespace Carbon (use Carbon\Carbon;) e deve funcionar.

EDIT:como Joel disse , você poderia fazer:
$projects = Project::whereBetween('recur_at', array(Carbon::now(), Carbon::now()->addWeek()))
    ->where('status', '<', 5)
    ->where('recur_cancelled', '=', 0)
    ->get();