Я пытаюсь экспортировать модель 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);
}
}
}