Laravel-excel: [BUG]无法解析[Maatwebsite \ Excel \ Transactions \ TransactionManager]的NULL驱动程序

创建于 2019-10-02  ·  5评论  ·  资料来源: Maatwebsite/Laravel-Excel

先决条件

  • [X]检查是否仍支持您的Laravel Excel版本: https ://docs.laravel-excel.com/3.1/getting-started/support.html#supported -versions
  • [X]能够在代码之外重现行为,因此问题只存在于Laravel Excel中。
  • [X]检查您的问题尚未提交。
  • [X]检查是否未提交可解决此问题的PR。
  • [X]填写了整个问题模板

版本号

  • PHP版本:PHP 7.3.9-1 + ubuntu16.04.1 + deb.sury.org + 1(cli)(内置:2019年9月2日12:54:04)(NTS)
  • Laravel版本:v6.0.4
  • 套件版本:3.1.17

描述

尝试导入XLS时出现以下错误

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

重现步骤

要导入的代码是:

Excel::import(new ProdutosImport, $file)

实际的导入是

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

预期行为:

导入文件。

实际行为:

错误出在
Unable to resolve NULL driver for [Maatwebsite\Excel\Transactions\TransactionManager].

附加信息

即使我没有使用Mongo,我也尝试按照#1998的建议禁用事务,但是它什么也没有改变。

最有用的评论

好的,我做了一些调查,这不是错误。

Laravel缓存正在软件包读取新发布的供应商配置的方式中。

一个简单的php artisan config:clear做到了。

所有5条评论

您是否在https://github.com/Maatwebsite/Laravel-Excel/issues/1998#issuecomment -508995478中尝试了我的答案? 听起来您使用的配置值错误。

您是否在#1998(评论)中尝试过我的回答? 听起来您使用的配置值错误。

我都尝试过。 还尝试了默认配置。

无论如何,由于我使用的是MySQL,因此默认配置不起作用吗?

顺便说一句, @patrickbrouwers ,无论我使用'db'还是'null'作为'handler'的值,我都会得到相同的消息'Unable to resolve NULL driver'

好的,我做了一些调查,这不是错误。

Laravel缓存正在软件包读取新发布的供应商配置的方式中。

一个简单的php artisan config:clear做到了。

我遇到了这个问题,我的问题是我使用的是库而不添加配置文件excel.php

所以我通过清除缓存来跟踪它(并且它起作用了),然后我添加了配置文件,然后再次缓存了我的配置。

我希望这有帮助。

此页面是否有帮助?
0 / 5 - 0 等级