Экспорт данных с пользовательскими параметрами Laravel Excel - PullRequest
1 голос
/ 25 апреля 2020

Я сейчас использую версию 3.1 из https://laravel-excel.com/ Я хочу запросить данные и загрузить их в файл Excel, но он всегда возвращает чистый лист.

мой маршрут:

Route::get('/reports/excel', 'ReportController@excel');

Контроллер My ReportsExport:

use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;


class ReportsExport implements FromView, WithEvents, ShouldAutoSize
{
    use Exportable;

    private $from, $to;

    public function __construct(String $from, String $to) {

        $this->from = $from;
        $this->to = $to;
    }

    public function view(): View
    {
        return view('reports.sample', [
            'reports' => Report::whereBetween('created_at', [$this->from, $this->to])->get()
        ]);
    }

контроллер загрузки

    public function excel(Request $request) {
    $from = Carbon::parse($request->get('from'));
    $to = Carbon::parse($request->get('to'));

    return Excel::download(new ReportsExport($from, $to), 'reports.xlsx');
}

Подскажите, пожалуйста, что мне здесь не хватает? Любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 26 апреля 2020

Мне удалось заставить его работать. Вот что я сделал:

Экспорт. php

    class ReportsExport implements FromView, WithEvents, ShouldAutoSize
{
    use Exportable;

    protected $from, $to;

    public function __construct(String $from, String $to) {

        $this->from = $from;
        $this->to = $to;
    }

    public function view(): View
    {
        return view('reports.sample', [
            'reports' => User::find(Auth::user()->id)->reports()
                   ->whereDate('created_at', '>=', $this->from)
                   ->whereDate('created_at', '<=', $this->to)
                   ->get(),


        ]);
    }

мой контроллер

    public function excel(Request $request) {
    $from = Carbon::parse($request->get('from'));
    $to = Carbon::parse($request->get('to'));

    return Excel::download(new ReportsExport($from, $to), 'reports.xlsx');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...