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

时间:2018-10-16 10:31:57

标签: php laravel maatwebsite-excel dynamic-variables laravel-excel

我正在使用maatwebsite / excel软件包,并且希望动态传递不同的文件类型作为第二个参数。
See function here

以下是变量:

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

但是我得到了错误:

  

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

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

Excel::${"fileType"};

如何传递变量?谢谢!

2 个答案:

答案 0 :(得分:0)

 return Excel::create('PatientList',function($excel) use ($variable){

            $excel->sheet('List',function($sheet) use ($variable){
                $sheet->fromArray($variable);
            });

        })->download($type);

当您下载文件时,请像这样使用。从视图中通过$type

答案 1 :(得分:0)

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

try {
  await new Promise((resolve, reject) => {
    r.onsuccess = resolve
    r.onerror = reject
  })

  console.log('success');
  result.something = true;
} catch(err) {
  console.log('error');
  result.something = false;
}