Я пытаюсь экспортировать большой объем данных с помощью Laravel Excel Export, версия 3.1, но мне всегда не хватает памяти (мой лимит 512M).
В классе экспорта:
class ExcelExport implements FromQuery
{
use Exportable;
public function query()
{
return DB::table('myTable')->orderBy('date');
}
}
В контроллере:
Excel::store(new ExcelExport(), 'myFile.xlsx');
Из официальной документации я вижу следующее:
"С помощью концерна FromQuery мы можем подготовить запрос на экспорт. За кулисами этот запрос выполняется частями. "
Но, похоже, он не работает должным образом.
Является ли использование Query Builder проблемой?
Кроме того,Есть ли способ установить размер чанка?
Я попытался использовать в запросе предложение limit, например:
public function query()
{
return DB::table('myTable')->orderBy('date')->limit(1000);
}
, но оно не работает: кажется, чтоограничение не используется.
Я пытался отловить ошибку в блоке try ... catch:
try{
Excel::store(new ExcelExport(), 'myFile.xlsx');
}
catch(\Exception $e){
Log::error($e->getMessage());
}
, но, тем не менее, он не перехватывает никаких исключений: всея вижу, что это внутренняя ошибка сервера 500.
Может ли кто-нибудь помочь мне с этим?
Заранее большое спасибо.