我的Controller.php中有源代码:
public function excel($id)
{
try
{
Excel::create('Hoadondiennuoc',function($excel){
$excel->sheet('Hóa đơn điện nước',function($sheet){
$diennuoc=Diennuoc::find($id);
$data=[
'diennuoc'=>$diennuoc,
];
$sheet->loadView('backend.diennuoc.diennuoc-excel',$data);
});
})->download('xlsx');
}
catch(QueryException $ex)
{
return response(['error'=> true ,'message'=> $ex->getMessage()],200);
}
catch(PDOException $ex)
{
return response(['error'=> true ,'message'=> $ex->getMessage()],200);
}
}
当我运行我的代码时,错误是:Undefined variable: id
此代码用于导出excel文件。问题是我无法使用“$ id”变量:“public function excel($id)
”来实现声明:“$diennuoc=Diennuoc::find($id)
”。你对如何使用$ id变量有想法吗?非常感谢你。
答案 0 :(得分:2)
您必须添加use
关键字,因为变量$id
未在匿名函数的范围内定义:
$excel->sheet('Hóa đơn điện nước',function($sheet) use($id){
$diennuoc=Diennuoc::find($id);
$data=[
'diennuoc'=>$diennuoc,
];
$sheet->loadView('backend.diennuoc.diennuoc-excel',$data);
});