Как исправить сериализацию «MongoDB \ Driver \ Manager» не разрешено в Laravel Excel - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь экспортировать модель mongoDB, используя очередь, но всегда возвращает исключение «Сериализация« MongoDB \ Driver \ Manager »не разрешена». Я нашел эту проблему в github (https://github.com/Maatwebsite/Laravel-Excel/issues/1760),, но я не знаю, была ли проблема решена или, если была, как применить исправление к моему коду.

Мой env: php-7.2, laravel-5.8.7, laravel excel-3.1.

class ClerksReportExport implements FromQuery, WithHeadings
{
    use Exportable;

    public function query()
    {
        return ClerkReport::query()->limit(50);
    }

    public function headings(): array
    {
        return [
            'nome',
            'uuid',
            'documento',
            'dataNascimento',
            'email',
            'colaboradorMultilaser',
            'telefone',
            'cep',
            'endereco',
            'numero',
            'complemento',
            'bairro',
            'cidade',
            'estado',
            'codigoIBGE',
            'banco',
            'tipoConta',
            'agenciaBanco',
            'agenciaDigito',
            'conta',
            'digitoConta',
            'dataCriacao',
            'dataAtualizacao',
            'dataExclusao',
            'nomeLoja',
            'uuidLoja',
            'documentoLoja',
            'cepLoja',
            'bairroLoja',
            'enderecoLoja',
            'numeroLoja',
            'complementoLoja',
            'cidadeLoja',
            'estadoLoja',
            'codigoIBGELoja',
            'dataCriacaoLoja',
            'dataAtualizacaoLoja',
            'dataExclusaoLoja',
        ];
    }
}

Класс моей работы:

<?php

namespace App\Jobs;

use App\Exports\ClerksReportExport;
use App\Models\Report;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Maatwebsite\Excel\Facades\Excel;

class ExportClerksReport implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable;

    protected $report;
    private $uuid;
    private $name = '__relatorio__balconistas';
    private $extension = '.xlsx';
    private $directory = 'reports/';

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
//    public function __construct(Report $report)
    {
//        $this->report = $report;
        $this->uuid = (string)\Illuminate\Support\Str::uuid();
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        (new ClerksReportExport())->queue($this->directory . $this->composeFilename());
    }

    private function composeFilename()
    {
        try {
            return $this->uuid . $this->name . $this->extension;
        } catch (Exception $e) {
            Bugsnag::notifyException($e);
        }
    }
}
...