рдЬрдм 200000 рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рдЬрдм рдореИрдВ рдбреЗрдЯрд╛ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ "134217728 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЕрдиреБрдордд рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░" рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдпрдЬ / рдбрд╛рдЯрд┐рдЯреЗрдмрд▓ рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВред
рдХреГрдкрдпрд╛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реАрдорд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ RAM рд╣реИред
public function showData(ServiceDataTable $dataTable)
{
return $dataTable
->render('dataTable.renderDataTable');
}
рдЗрд╕ рдереЛрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ 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;
}
}