如何从存储在变量中的字符串调用 PHP 属性



我正在使用maatwebsite/excel包,我想动态传递不同的文件类型作为第二个参数。
在此处

查看函数 下面是变量:

$fileType = $request->input('fileType', 'xlsx');
$writerType = Excel::$fileType;

但是我得到错误:

访问未声明的静态属性:Maatwebsite\Excel\Excel::$fileType

我尝试使用大括号但不起作用:

Excel::${"fileType"};

如何传递变量?谢谢!

您正确传递了变量。但问题是Maatwebsite\Excel\Excel包含常量的XLSX,它不是一个属性。常量可以通过 Excel::XLSX 静态访问,也可以使用常量函数动态访问:

$fileType = $request->input('fileType', 'xlsx');
$writerType = constant('Excel::' . strtoupper($fileType));
return Excel::create('PatientList',function($excel) use ($variable){
$excel->sheet('List',function($sheet) use ($variable){
$sheet->fromArray($variable);
});
})->download($type);

当您从视图中下载 File.pass$type时,请像这样使用。

最新更新