#php #laravel
#php #laravel
Вопрос:
У меня есть функция laravel, которая экспортирует запрос к базе данных в Excel. Я использую Maatwebsite Excel Facades Excel.
Проблема в том, что я пытаюсь передать 2 даты в качестве параметров, но когда я это делаю, я получаю ошибку неопределенной переменной.
Вопрос в том, как я могу передать эти переменные из основной функции в функцию Excel. Вот мой код:
public function excel2 (Request $request){
// These are the values I want pass to the query:
$initialDate=$request->get('initialDate');
$finalDate=$request->get('finalDate');
Excel::create('DataByDate',function($excel){
$excel->sheet('DataByDate',function($sheet){
$data =DB::select('SELECT c.cuenta,g.fecha as fecha, t.descripcion as tipificacion,
g.observacion as comentario, ROUND(NVL(c.saldoVencido,0),2) AS SaldoVencidoQ, ROUND(NVL(saldoVencidoD,0),2) AS SaldoVencidoD, ROUND(NVL(c.saldo,0),2) AS SaldoQ, ROUND(NVL(c.saldoD,0),2) AS saldoD,
ROUND(NVL(c.montoExtraf,0),2) AS MontoExtraf,c.cuotasVencidas AS CuotasVencidasQ, NVL(c.cuotasVencidasD,0) AS cuotasVencidasD, c.responsable AS Gestor from gestion g
inner join cliente c on g.idCliente = c.id
inner join tipificacion t on g.idTipif = t.id_tipif
where esPromesa!="R"
// This part is the one that is failing
and cast fecha as date between '.$initialDate.' and '.$finalDate.';
');
$data= json_decode( json_encode($data), true);
$sheet->fromArray($data,null,null,true);
});
})->export('xls');
}
Комментарии:
1. Добро пожаловать в SO… что вы пытаетесь передать?
2. не забудьте указать свою версию Laravel.
Ответ №1:
Если вам нужно использовать переменные в области замыкания, вы должны использовать use()
инструкцию. Это будет выглядеть примерно так.
Excel::create('DataByDate', function ($excel) use ($initialDate, $finalDate) {
$excel->sheet('DataByDate', function ($sheet) use ($initialDate, $finalDate) {
Комментарии:
1. Довольно полезно, все работало нормально, большое вам спасибо.