Laravel-excel: [BUG] Não foi possível resolver o driver NULL para [Maatwebsite \ Excel \ Transactions \ TransactionManager]

Criado em 2 out. 2019  ·  5Comentários  ·  Fonte: Maatwebsite/Laravel-Excel

Pré-requisitos

  • [X] Verificado se sua versão do Laravel Excel ainda é compatível: https://docs.laravel-excel.com/3.1/getting-started/support.html#supported -versions
  • [X] Capaz de reproduzir o comportamento fora do seu código, o problema é isolado no Laravel Excel.
  • [X] Verificou se seu problema ainda não foi arquivado.
  • [X] Verificado se nenhum PR foi enviado para corrigir este problema.
  • [X] Preenchido todo o modelo de problema

Versões

  • Versão do PHP: PHP 7.3.9-1 + ubuntu16.04.1 + deb.sury.org + 1 (cli) (construído: 2 de setembro de 2019 12:54:04) (NTS)
  • Versão do Laravel: v6.0.4
  • Versão do pacote: 3.1.17

Descrição

Ao tentar importar um XLS, recebo o seguinte erro

Unable to resolve NULL driver for [Maatwebsite\Excel\Transactions\TransactionManager].

Passos para reproduzir

O código a importar é:

Excel::import(new ProdutosImport, $file)

E a importação real é

<?php

namespace App\Imports;

use App\Produto;
use Maatwebsite\Excel\Concerns\OnEachRow;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class ProdutosImport implements OnEachRow, WithHeadingRow
{
    /**
     * <strong i="27">@param</strong> array $row
     *
     * <strong i="28">@return</strong> \Illuminate\Database\Eloquent\Model|null
     */
    public function onRow($row)
    {
        $row = $row->toArray();
        if ($row['nmero_do_pedido'] !== null && $row['sku'] !== null) {
            $produto = Produto::firstOrNew(['id_venda' => $row['nmero_do_pedido'], 'sku' => $row['sku'], 'sequeencia' => null]);
            $produto->id_venda = $row['nmero_do_pedido'];
            $produto->sequeencia = null;
            $produto->sku = $row['sku'];
            $produto->data_pagamento = $row['data_de_pagamento'];
            $produto->estado_pagamento = $row['status_do_pagamento'];
            $produto->titulo_produto = $row['nome_do_produto'];
            $produto->sub_total = $row['valor_do_produto'];
            $produto->descuento_compra = 0;
            $produto->total_venda = $row['valor_do_produto'];

            $produto->save();
        }
    }
}

Comportamento esperado:

Importe o arquivo.

Comportamento real:

Erros com
Unable to resolve NULL driver for [Maatwebsite\Excel\Transactions\TransactionManager].

informação adicional

Embora eu não esteja usando o Mongo, tentei desabilitar as transações conforme sugerido em # 1998, mas não mudou nada.

bug

Comentários muito úteis

Ok, fiz algumas investigações e não é um bug.

O cache do Laravel estava a caminho do pacote lendo a nova configuração de fornecedor publicada.

Uma configuração simples de

Todos 5 comentários

Você já tentou minha resposta em https://github.com/Maatwebsite/Laravel-Excel/issues/1998#issuecomment -508995478? Parece que você está usando o valor de configuração errado.

Você tentou minha resposta em # 1998 (comentário) ? Parece que você está usando o valor de configuração errado.

Eu tentei os dois. Também tentei as configurações padrão.

As configurações padrão não deveriam funcionar, já que estou usando MySQL, de qualquer maneira?

BTW, @patrickbrouwers , recebo exatamente a mesma mensagem 'Incapaz de resolver o driver NULL' se tenho 'db' ou 'null' como valor para 'handler'

Ok, fiz algumas investigações e não é um bug.

O cache do Laravel estava a caminho do pacote lendo a nova configuração de fornecedor publicada.

Uma configuração simples de

Eu enfrentei esse problema, meu problema é que estou usando a biblioteca sem adicionar o arquivo de configuração excel.php .

então eu rastreei limpando o cache (e funcionou), então adicionei o arquivo de configuração e, em seguida, armazenei minha configuração em cache novamente.

Eu espero que isso ajude.

Esta página foi útil?
0 / 5 - 0 avaliações