Очередь экспорта Laravel Excel и множественная таблица

#laravel-excel

#laravel-excel

Вопрос:

Я пытался использовать Laravel Excel с несколькими листами и shouldQueue , но файл возвращался с пустым листом, хотя весь лист был создан успешно.

Комментарии:

1. Возможно, вам потребуется опубликовать то, что вы уже пробовали.

2. я думаю, проблема в размере памяти, поскольку данные файла огромны, мне удается обойти проблему, ограничив лист, вместо того, чтобы сбрасывать всю запись в 1 файл

Ответ №1:

Мне удается обойти проблему, ограничив запись на файл

вот код

 <?php

namespace AppExports;

use AppExportsSheetsAnswersPerSchoolSheet;
use IlluminateContractsQueueShouldQueue;
use IlluminateSupportFacadesDB;
use MaatwebsiteExcelConcernsExportable;
use MaatwebsiteExcelConcernsWithMultipleSheets;

class AnswersExport implements WithMultipleSheets, ShouldQueue
{
    use Exportable;

    public function __construct($start, $end)
    {
        $this->start = $start;
        $this->end = $end;
    }
    public function sheets(): array
    {
        $sheets = [];

        $schools = DB::table('schools')
            ->join('answers', 'schools.id', '=', 'answers.school_id')
            ->select('schools.id')
            ->distinct('schools.id')
            ->whereBetween('schools.id', [$this->start,$this->end])
            ->get();

        foreach ($schools as $school) {
            $sheets[] = new AnswersPerSchoolSheet($school->id);
        }

        return $sheets;
    }
}