Laravel-excel: [ОШИБКА] Невозможно разрешить драйвер NULL для [Maatwebsite \ Excel \ Transactions \ TransactionManager]

Созданный на 2 окт. 2019  ·  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) (построено: 2 сентября 2019 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 сделала это.

Все 5 Комментарий

Вы пробовали мой ответ на https://github.com/Maatwebsite/Laravel-Excel/issues/1998#issuecomment -508995478? Похоже, вы используете неправильное значение конфигурации.

Вы пробовали мой ответ в № 1998 (комментарий) ? Похоже, вы используете неправильное значение конфигурации.

Я пробовал и то, и другое. Также пробовал конфиги по умолчанию.

Разве конфигурации по умолчанию не должны работать, раз уж я использую MySQL?

Кстати, @patrickbrouwers , я получаю то же самое сообщение «Невозможно разрешить драйвер NULL», независимо от того, есть ли у меня «db» или «null» в качестве значения для «обработчика».

Хорошо, я провел небольшое расследование, и это не ошибка.

Кэш Laravel находился на пути пакета, читающего новую опубликованную конфигурацию поставщика.

Простая конфигурация php artisan сделала это.

Я столкнулся с этой проблемой, моя проблема заключалась в том, что я использую библиотеку без добавления файла конфигурации excel.php .

поэтому я отследил это, очистив кеш (и это сработало), затем я добавил файл конфигурации, а затем снова кэшировал свою конфигурацию.

Надеюсь, это поможет.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги