Laravel-excel:它传递了什么变量。

时间:2018-03-08 08:40:20

标签: php laravel variables laravel-excel

我的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变量有想法吗?非常感谢你。

1 个答案:

答案 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);
});