Laravel-excel: [バグ] [Maatwebsite \ Excel \ Transactions \ TransactionManager]のNULLドライバーを解決できません

作成日 2019年10月02日  ·  5コメント  ·  ソース: Maatwebsite/Laravel-Excel

前提条件

  • [X] Laravel Excelのバージョンがまだサポートされているかどうかを確認しました: https
  • [X]コードの外部で動作を再現できるため、問題はLaravelExcelに限定されます。
  • [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で提案されているようにトランザクションを無効にしようとしましたが、何も変わりませんでした。

bug

最も参考になるコメント

わかりました、私はいくつかの調査をしました、そしてそれはバグではありません。

Laravelキャッシュは、新しく公開されたベンダー構成を読み取るパッケージの途中でした。

単純なphp職人config:clearがそれを行いました。

全てのコメント5件

https://github.com/Maatwebsite/Laravel-Excel/issues/1998#issuecomment -508995478で私の答えを試しましたか? 間違った設定値を使用しているようです。

#1998(コメント)で私の答えを試しましたか? 間違った設定値を使用しているようです。

私は両方を試しました。 また、デフォルトの設定を試しました。

とにかく、MySQLを使用しているので、デフォルトの構成は機能しないはずですか?

ところで、 @ patrickbrouwers 、「handler」の値として「db」または「null」があるかどうかにかかわらず、「NULLドライバーを解決できません」というまったく同じメッセージが表示されます

わかりました、私はいくつかの調査をしました、そしてそれはバグではありません。

Laravelキャッシュは、新しく公開されたベンダー構成を読み取るパッケージの途中でした。

単純なphp職人config:clearがそれを行いました。

私はこの問題に直面しました。私の問題は、構成ファイルexcel.phpを追加せずにライブラリを使用していること

だから私はキャッシュをクリアすることによってそれを追跡しました(そしてそれは機能しました)、そして私は設定ファイルを追加し、そして私の設定を再びキャッシュしました。

これがお役に立てば幸いです。

このページは役に立ちましたか?
0 / 5 - 0 評価