Как передать переменную во вложенный запрос Laravel
Есть запрос составленный через конструктор запросов Laravel
$y = substr($req->date_begin,0,4);
$m = substr($req->date_begin,5,2);
$consumption = $consumption->where("date_part('year',charge.date_begin)", '>', $y)
->orWhere(function ($query){
$query->where("date_part('year',charge.date_begin)", '=', $y) // ОШИБКА
->where("date_part('month',charge.date_begin)", '>=',$m); // ОШИБКА
});
в подзапросе не видит переменные $y и $m. Как их туда передать?
Ответы (1 шт):
Автор решения: Вадим Александру
→ Ссылка
Необходимо использовать use
$y = substr($req->date_begin,0,4);
$m = substr($req->date_begin,5,2);
$consumption = $consumption->where("date_part('year',charge.date_begin)", '>', $y)
->orWhere(function ($query) use ($y, $m){
$query->where("date_part('year',charge.date_begin)", '=', $y)
->where("date_part('month',charge.date_begin)", '>=',$m);
});