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で提案されているようにトランザクションを無効にしようとしましたが、何も変わりませんでした。
https://github.com/Maatwebsite/Laravel-Excel/issues/1998#issuecomment -508995478で私の答えを試しましたか? 間違った設定値を使用しているようです。
#1998(コメント)で私の答えを試しましたか? 間違った設定値を使用しているようです。
私は両方を試しました。 また、デフォルトの設定を試しました。
とにかく、MySQLを使用しているので、デフォルトの構成は機能しないはずですか?
ところで、 @ patrickbrouwers 、「handler」の値として「db」または「null」があるかどうかにかかわらず、「NULLドライバーを解決できません」というまったく同じメッセージが表示されます
わかりました、私はいくつかの調査をしました、そしてそれはバグではありません。
Laravelキャッシュは、新しく公開されたベンダー構成を読み取るパッケージの途中でした。
単純なphp職人config:clearがそれを行いました。
私はこの問題に直面しました。私の問題は、構成ファイルexcel.php
を追加せずにライブラリを使用していること
だから私はキャッシュをクリアすることによってそれを追跡しました(そしてそれは機能しました)、そして私は設定ファイルを追加し、そして私の設定を再びキャッシュしました。
これがお役に立てば幸いです。
最も参考になるコメント
わかりました、私はいくつかの調査をしました、そしてそれはバグではありません。
Laravelキャッシュは、新しく公開されたベンダー構成を読み取るパッケージの途中でした。
単純なphp職人config:clearがそれを行いました。