Я работаю в проекте, используя Laravel 8 и waatwebsite (для работы с excel). У меня есть одна таблица с именем Docs в моей базе данных, которая имеет значение 20 столбцов. Я не знаю, как сделать функцию select () динамической, чтобы я мог передать имя столбца из контроллера, чтобы извлечь запрос и выгрузить столбец, который мне нужен для другой загрузки.
Здесь я загрузил другие данные в Excel с другим столбцом, а не Lc_no, cur, value_date.
Кроме того, как установить параметр строки конструктора $ search, string $ from, string $ to в значение null, если оно не передается через контроллер.
Модель
class UserExport implements FromQuery
{
use Exportable;
/**
* @return \Illuminate\Support\Collection
*/
use Exportable;
public function __construct(string $search,string $from, string $to)
{
$this->from = $from;
$this->to = $to;
$this->search = $search;
}
public function query()
{
return Doc::query()->wherebetween($this->search, [$this->from,$this->to])->select('lc_no', 'cur', 'value_date');
}
Контроллер
class ExportController расширяет Controller {
function exports(){
//return Excel::download(new UserExport, 'users.xlsx');
return (new UserExport)->download('docs.xlsx');
}
function treasury_dump($from,$to)
{
$search = 'value_date';
return (new UserExport($search,$from,$to))->download('treasury.xlsx');
}