#php #laravel #laravel-excel
#php #laravel #laravel-excel
Вопрос:
Я использую Laravel-библиотеку Excel для разработки функции экспорта xls.
Мне нужно добавить значение в определенную ячейку. В качестве документации я написал скрипт
$data = MyModel::getComplexData();
Excel::create('Export payroll', function($excel) use ($data) {
$excel->sheet('Sheet1', function($sheet) use ($data) {
$sheet->cell('A1', function ($cell) use ($data) {
$cell->setValue($data->name);
});
});
})->download('xls');
Вы можете видеть, что параметр $data
был передан 3 раза по 3 функциям обратного вызова.
Мне нужно найти способ сделать скрипт более понятным (передать $data
только 1 раз).
Комментарии:
1. Я не вижу другого решения, поскольку, если вы используете только один раз, переменная $data будет неопределенной
2. На самом деле это более понятно. Будущий разработчик будет точно знать, откуда берется
$data
. Альтернативой является использование$GLOBALS
переменной, но я не буду рекомендовать.
Ответ №1:
У меня есть идея взглянуть на приведенный ниже код. мы можем установить в переменной члена.
<?php
class Test(){
private $data = "Hellow";
public function funct(){
$data = MyModel::getComplexData();
$this->data = $data;
Excel::create('Export payroll', function($excel){
$excel->sheet('Sheet1', function($sheet){
$sheet->cell('A1', function ($cell){
$cell->setValue($this->data->name);
});
});
})->download('xls');
}
}
?>