Laravel-datatables: рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдПрдХреНрд╕рдкреЛрд░реНрдЯ 200000 рд░рд┐рдХреЙрд░реНрдб

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдорд╛рд░реНрдЪ 2018  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yajra/laravel-datatables

рд╕рдорд╕реНрдпрд╛ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢

рдЬрдм 200000 рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рдЬрдм рдореИрдВ рдбреЗрдЯрд╛ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ "134217728 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЕрдиреБрдордд рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░" рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ред

рдпрдЬ / рдбрд╛рдЯрд┐рдЯреЗрдмрд▓ рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВред

рдХреГрдкрдпрд╛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реАрдорд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ RAM рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ

public function showData(ServiceDataTable $dataTable)
    {
        return $dataTable
            ->render('dataTable.renderDataTable');
    }

рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╡рд░рдг

  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: Ubuntu 16.04
  • PHP рд╕рдВрд╕реНрдХрд░рдг: 7.0.0
  • рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: 5.5
  • рд▓рд╛рд░рд╡реЗрд▓-рдбреЗрдЯрд╛рдЯреИрдмрд▓реНрд╕ рд╕рдВрд╕реНрдХрд░рдг: 8.0
  • рд▓рд╛рд░рд╡реЗрд▓-рдбрд╛рдЯрд╛рд╡реЗрдмрд▓реНрд╕ рдмрдЯрди рд╕рдВрд╕реНрдХрд░рдг: 3.1
performance question

рд╕рднреА 19 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕ рдереЛрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ ServiceDataTable рдХреНрд▓рд╛рд╕ рдкрд░, рдЖрдк protected function buildExcelFile() рдореЗрдердб рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЪрдВрдХ рдХрд░реЗрдВ, рдЖрджрд┐ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд▓рд╛рд░реНрд╡реЗрд▓-рдПрдХреНрд╕реЗрд▓ рдбреЙрдХреНрд╕ рджреЗрдЦреЗрдВред

    /**
     * Build excel file and prepare for export.
     *
     * <strong i="7">@return</strong> \Maatwebsite\Excel\Writers\LaravelExcelWriter
     */
    protected function buildExcelFile()
    {
        /** <strong i="8">@var</strong> \Maatwebsite\Excel\Excel $excel */
        $excel = app('excel');

        return $excel->create($this->getFilename(), function (LaravelExcelWriter $excel) {
            $excel->sheet('exported-data', function (LaravelExcelWorksheet $sheet) {
                $sheet->fromArray($this->getDataForExport());
            });
        });
    }

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб
$this->getDataForExport();
рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб editColumn() рдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдЕрдкрд╡рд╛рдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
200000 рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВред
рдХреНрдпрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рд▓рд┐рдВрдХ рд╣реИ рд▓реЗрдХрд┐рди рдпрдЬ рдпрдЬрд░рд╛ / рд▓рд╛рд░реНрд╡рд╛-рдбреЗрдЯрд╛рдЯреИрдмрд▓реНрд╕-рдмрдЯрди: ^ 3.1 рдЕрднреА рддрдХ рд▓рд╛рд░рд╡реЗрд▓ / рдПрдХреНрд╕реЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: 3.0
https://laravel-excel.maatwebsite.nl/docs/3.0/export/queued

рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реАрдзреЗ рдХреНрд╡реЗрд░реА рдпрд╛ рд▓рдЪрд░ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рд╣реЛред

рдореИрдВ рдЙрд╕ рдСрдкрд░реЗрд╢рди рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдореИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди

134217728 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЕрдиреБрдордд рд╕реНрдореГрддрд┐ рдЖрдХрд╛рд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛

рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ html рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдореИрдВ html рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП rawColumns () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдореЗрд░реА рдХреНрд╡реЗрд░реА phpmyadmin рдореЗрдВ 0.420 ms рдФрд░ рдкрд╣рд▓реЗ 1.4 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣реИред

рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЗрд╕реЗ JQuery рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдпрд╛ рдпрдЬреНрд░рд╛ рдбрд┐рдЯреИрдЯреЗрдмрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдРрд╕реЗ рдХрдИ рдореБрджреНрджреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗред

рдореБрдЭреЗ рдбреЗрдЯрд╛ рдХреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ 20 рдПрдордмреА рд╣реИред

рдореЗрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд░реНрд╡рд░ (рдпрд╛ S3) рдкрд░ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреИрд╢рдмреЛрд░реНрдб рдпрд╛ рдИрдореЗрд▓ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ред рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдорд┐рд▓рд╛ рддреЛ рдореИрдВ рдпрд╣рд╛рдВ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░рд╕рд╛рдЗрдб рдкреНрд░реЙрдмреНрд▓рдо рд╣реИ рдЬреЛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд░реИрдо рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрд╢рди рд╕рд╛рдЗрдЬ 60MB рд╣реИред
Php.ini рдореЗрдВ memory_limit рджреЗрдЦреЗрдВ
рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рд╕реАрдорд╛ max_execution_time 60 рд╣реИред
рдореВрд▓реНрдп рдмрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рд╕рд░реНрд╡рд░рд╕рд╛рдЗрдб рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред

рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛, рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ / рдПрдХреНрд╕рдкреЛрд░реНрдЯ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

public function excel()
{
    $this->buildExcelFile()->store('xls');
}

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рд╡рд┐рдХрд╛рд╕ рдПрдирд╡реА рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рд╕реЗрдЯрдЕрдк рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдореЗрдореЛрд░реА рдХреИрдк рд╕реЗ рдЯрдХрд░рд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХреНрд╕реЗрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ?

рдзреНрдпрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд▓рд╛рд░рд╡реЗрд▓ 5.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдкрд░ рд▓реМрдЯреЗрдВ, рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЖрдкрдХреА рдкрдВрдЬреАрдХреГрдд рдЖрдИрдбреА рдкрд░ рдИрдореЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ "

2.1 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдХреИрд╕реЗ рдХрддрд╛рд░ рдмрдирд╛рдИ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рдкрд╛рдпрд╛ рдХрд┐ рд╡реЗ " рдХреНрдпреВрдИрдб рдЪрдВрдХ " рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рддреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рддреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдЕрдЧрд░ рдХреЛрдИ Laravel Excel 3.0+ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддреЛ рдКрдкрд░реА рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ "рдХрддрд╛рд░рдмрджреНрдз рдирд┐рд░реНрдпрд╛рдд" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ buildExcelFile() рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╛ рдореИрдВрдиреЗ рдХреБрдЫ рдФрд░ рднреА рдЪреБрди-рдЪреБрди рдХрд░ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрдирд╛рдХрд░ рдФрд░ CSV рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░реВрдВ рдФрд░ рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ

рдХреЛрдИ рдЕрдкрдбреЗрдЯреНрд╕ ?

Laravel 6 рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ рдЖрдк LazyCollections рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЖрдЗрдЯрдо рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рдХреЗрд╡рд▓ DataTable рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд DataTablesExportHandler рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдЬрд┐рд╕реНрдо рджреЗрдЦ рд▓реЛ

рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!

@singhofmarco рдЖрдк рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@singhofmarco рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдПрдХ v10 рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА рд╣реИ рдЬреЛ LazyCollections рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдЯреАрдПрдо рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреА рд╣реИред

рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдорд╛рд░реНрдЧ рдЧрдпрд╛ред рдореИрдВрдиреЗ рд╕реАрдПрд╕рд╡реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рд╣реИ, рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдкреЗрдЬ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдХреЗ, рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЪреИрдВрдХрд┐рдВрдЧред рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рддрдХ рдкрд░рд┐рдгрд╛рдо рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ fputcsv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рд▓рд╛рд░рд╛рд╡реЗрд▓ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред

рди рдХреЗрд╡рд▓ рдореЗрдореЛрд░реА рд╕реАрдорд╛ рдЕрдм рдФрд░ рдХрднреА рдирд╣реАрдВ рдкрд╣реБрдВрдЪреА рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рд╕реАрдПрд╕рд╡реА рд╕реНрд╡рдпрдВ рдкреАрдПрдЪрдкреА рдореЗрдореЛрд░реА рд╕реАрдорд╛ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИ, рддрдм рдПрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдЧреЗ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рднреА рджреЛ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬ рд╣реИ ......

@ameenross рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЖрдк рдЕрдкрдирд╛ рдХреЛрдб рдХреГрдкрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ рдХрд░реНрдореЗрдВрджреНрд░ рдореИрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рдпрдЬрд░рд╛ рдбреЗрдЯрд╛рдЯреИрдмрд▓реНрд╕ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣реИред рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдЬреЛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХреБрдЫ рдкреГрд╖реНрда рдФрд░ рд▓рдВрдмрд╛рдИ рдорд╛рдиреЛрдВ рдХреЛ рдорд┐рд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ AJAX ( $this->ajax()->getData(true)['data'] ) рдХрд╛ рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╣реИ рдЬреЛ рдпрдЬ рдбрд╛рдЯрд┐рдЯреЗрдмрд▓ рдХреНрд▓рд╛рд╕ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ getCsv рдХрд╛ рдлрдВрдХреНрд╢рди рд╣реИ (рд╕рднреА рдХреЗ рдмрд╛рдж CSV рдлрдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ)ред рдпрд╣ рдПрдХ рд▓реВрдк рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЕрдзрд┐рдХ рдкреГрд╖реНрда рд╢реЗрд╖ рди рд╣реЛрдВред

@ameenross рдзрдиреНрдпрд╡рд╛рдж рдЬреЛ рд╕рд╣рд╛рдпрдХ рд╣реИред рдореИрдВ рдПрдХ рдмрд╛рд░ рдЗрд╕рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдБрдЧрд╛ред

рд▓рд╛рд░рд╡реЗрд▓ рдбрд╛рдПрдЯреЗрдмрд▓ :: v1.5.0
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди @ TheGeekyM рдЯрд┐рдкреНрдкрдгреА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВред
рдореИрдВрдиреЗ рдПрдХ ChunkedDatatableExportHandler рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ FromQuery рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ ServiceDataTables рдореЗрдВ buildExcelFile рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред

<?php

namespace App\DataTables;

use Yajra\DataTables\Services\DataTable;

class ServiceDataTable extends DataTable
{
  protected $exportClass = ChunkedDatatableExportHandler::class;

  protected function buildExcelFile()
  {
      $query = app()->call([$this, 'query']);
      $query = $this->applyScopes($query);

      $dataTable = app()->call([$this, 'dataTable'], compact('query'));
      $dataTable->skipPaging();
      $data_query = $dataTable->getFilteredQuery();

      return new $this->exportClass($data_query);
  }
}
<?php
namespace App\DataTables;

use Illuminate\Database\Query\Builder;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;

class ChunkedDatatableExportHandler implements FromQuery, WithHeadings
{
    use Exportable;

    /**
     * <strong i="11">@var</strong> Builder 
     */
    protected $query;

    /**
     * ChunkDatatablesExportHandler constructor.
     * <strong i="12">@param</strong> Builder $query
     */
    public function __construct(Builder $query)
    {
        $this->query = $query;
    }

    /**
     * <strong i="13">@return</strong> array
     */
    public function headings(): array
    {
        $first = $this->query()->first();

        if ($first) {
            return array_keys((array)$first);
        }

        return [];
    }

    /**
     * <strong i="14">@return</strong> Builder
     */
    public function query()
    {
        return $this->query;
    }
}
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jackrsantana picture jackrsantana  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kamrava picture kamrava  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Abdulhmid picture Abdulhmid  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ahmadbadpey picture ahmadbadpey  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SGarridoDev picture SGarridoDev  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ