Laravel-excel: [ERROR] No se puede resolver el controlador NULL para [Maatwebsite \ Excel \ Transactions \ TransactionManager]

Creado en 2 oct. 2019  ·  5Comentarios  ·  Fuente: Maatwebsite/Laravel-Excel

Prerrequisitos

  • [X] Verificó si su versión de Laravel Excel todavía es compatible: https://docs.laravel-excel.com/3.1/getting-started/support.html#supported -versions
  • [X] Capaz de reproducir el comportamiento fuera de su código, el problema está aislado en Laravel Excel.
  • [X] Verificó que su problema aún no se haya presentado.
  • [X] Se verificó si no se envió ningún RP que solucione este problema.
  • [X] Completado en toda la plantilla de problemas

Versiones

  • Versión de PHP: PHP 7.3.9-1 + ubuntu16.04.1 + deb.sury.org + 1 (cli) (construido: 2 de septiembre de 2019 12:54:04) (NTS)
  • Versión de Laravel: v6.0.4
  • Versión del paquete: 3.1.17

Descripción

Al intentar importar un XLS, aparece el siguiente error

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

Pasos para reproducir

El código a importar es:

Excel::import(new ProdutosImport, $file)

Y la importación real es

<?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();
        }
    }
}

Comportamiento esperado:

Importa el archivo.

Comportamiento real:

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

Información Adicional

Aunque no estoy usando Mongo, intenté deshabilitar las transacciones como se sugiere en # 1998, pero no cambió nada.

bug

Comentario más útil

Ok, hice una investigación y no es un error.

La caché de Laravel estaba en camino del paquete leyendo la nueva configuración de proveedor publicada.

Una simple configuración artesanal de php hizo.

Todos 5 comentarios

¿Ha probado mi respuesta en https://github.com/Maatwebsite/Laravel-Excel/issues/1998#issuecomment -508995478? Parece que estás usando un valor de configuración incorrecto.

¿Has probado mi respuesta en # 1998 (comentario) ? Parece que estás usando un valor de configuración incorrecto.

Probé ambos. También probé las configuraciones predeterminadas.

¿No deberían funcionar las configuraciones predeterminadas, ya que estoy usando MySQL, de todos modos?

Por cierto, @patrickbrouwers , recibo exactamente el mismo mensaje 'No se puede resolver el controlador NULL' si tengo 'db' o 'null' como valor para 'handler'

Ok, hice una investigación y no es un error.

La caché de Laravel estaba en camino del paquete leyendo la nueva configuración de proveedor publicada.

Una simple configuración artesanal de php hizo.

Enfrenté este problema, mi problema fue que estoy usando la biblioteca sin agregar el archivo de configuración excel.php .

así que lo rastreé borrando el caché (y funcionó), luego agregué el archivo de configuración y luego guardé en caché mi configuración nuevamente.

Espero que esto ayude.

¿Fue útil esta página
0 / 5 - 0 calificaciones