Я использую пакет 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);
используйте как это при загрузке файла .pass $type
с вашей точки зрения.