Excel :: download () возвращает пустую / пустую страницу даже после ее возврата - PullRequest
1 голос
/ 07 февраля 2020

Вот мое окружение

php : 7.4.2
laravel : 6.14.0
maatwbsite-excel : 3.1.18

Вот экспорт файл

namespace App\Exports;

use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromArray;

class UserReportsExport implements FromArray
{

    use Exportable;

    protected $export_columns;

    function __construct($export_columns)
    {
        $this->export_columns = $export_columns;
    }

    public function array(): array
    {
        return [
            $this->export_columns
        ];
    }
}

Вот контроллер

return Excel::download(new UserReportsExport($export_columns), 'Users_Report_' . $todayDate . '.xlsx');

Вот ссылка , которая близко подошла к проблеме. Основываясь на предложенном решении, я использую return в моем контроллере, но страница все еще пуста / пуста НО в моей папке /tmp там генерируется .zip подобно laravel-excel-*** (все в него входят файлы. xml).

Не уверен, что мне здесь не хватает. Пожалуйста, предложите. Спасибо.

1 Ответ

0 голосов
/ 07 февраля 2020

https://docs.laravel-excel.com/3.1/exports/collection.html#using -массивы глядя на это, вам нужно убрать заключающие скобки в return [ $this->exports_columns ], чтобы он стал return $this->exports_columns

Если это все еще не работает, то, Вы можете позвонить по номеру ob_end_clean();, прежде чем возвращать ссылку для скачивания. У вас может быть завершающий пробел после закрывающего ?>, или var_dump, или эхо, где-то портится поток вашей программы и устанавливаются заголовки. Если это начинает работать с этим, проверьте ваш код, у вас есть что-то, что портит ваши заголовки, отправляя ранний вывод.

ob_end_clean();
return Excel::download(new UserReportsExport($export_columns), 'Users_Report_' . $todayDate . '.xlsx');

также, если вы этого еще не сделали, включите отчеты об ошибках для всего , Это может дать что-то значимое взамен. Если вы получаете пустую страницу, которая звучит подозрительно, как ошибка 500, с отчетами об ошибках отключен. Проверьте свои php журналы.

Наиболее распространенная ошибка, о которой я могу подумать, в этом случае: Невозможно изменить заголовки, заголовки уже отправлены. Пожалуйста, прочитайте Как я могу получить полезные сообщения об ошибках в PHP?

...