インポートオブジェクトクラスを作成し、ToCollectionの懸念事項を指定しました。 Excel :: importを実行すると、以下のActual Behavior
示すエラーが表示されます。
トランザクションデータベースは使用しないでください。 MongoDBを使用しています。
それを除けば、モデルのインポートは指定されておらず、パッケージはデータベースの準備を行ってはなりません。データベースの準備は、開発者がイベントを通じて処理する必要があります。
予想される行動:
コレクション行のdd。
実際の動作:
1) Tests\Unit\Services\Websites\WebsiteCredentialsImportServiceTest::testImportTabDelimited
Error: Call to a member function beginTransaction() on null
/var/www/vhosts/website.local/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:109
/var/www/vhosts/website.local/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:93
/var/www/vhosts/website.local/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php:23
/var/www/vhosts/website.local/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:327
/var/www/vhosts/website.local/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:223
/var/www/vhosts/website.local/vendor/maatwebsite/excel/src/Reader.php:96
/var/www/vhosts/website.local/vendor/maatwebsite/excel/src/Excel.php:120
/var/www/vhosts/website.local/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:223
/var/www/vhosts/website.local/app/Services/Websites/WebsiteCredentialsImportService.php:198
/var/www/vhosts/website.local/app/Services/Websites/WebsiteCredentialsImportService.php:182
/var/www/vhosts/website.local/app/Services/Websites/WebsiteCredentialsImportService.php:122
/var/www/vhosts/website.local/tests/Unit/Services/Websites/WebsiteCredentialsImportServiceTest.php:25
<?php
namespace App\Imports\Websites;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
/**
* Class WebsiteCredentialsImport
*
* <strong i="29">@package</strong> App\Imports\Websites
*/
class WebsiteCredentialsImport implements ToCollection
{
public function collection(Collection $rows)
{
dd(['COLLECTION' => $rows]);
}
}
$collection = Excel::import(
new WebsiteCredentialsImport,
$this->file_name,
null,
$this->reader_type
);
検証とバッチ挿入にはデータベーストランザクションを使用します。 これらはEloquent / Laravel-DBユーザーにとって非常に重要です。 .egMongoを使用するユーザーに対して無効にする設定オプションを提供するPRをマージしてください
次のバージョンには、Laravel-DBトランザクションを無効にする設定とカスタムトランザクションハンドラーを追加する方法があります
こんにちは !
私は非常に正確な状況にあります。読み取ったデータを保存する必要はなく、Mongoを使用しています。
トランザクションを無効にするコードを教えていただけますか?
こんにちは !
私は非常に正確な状況にあります。読み取ったデータを保存する必要はなく、Mongoを使用しています。
トランザクションを無効にするコードを教えていただけますか?
https://github.com/Maatwebsite/Laravel-Excel/commit/13374dab1592f00f715fa0e02541ecb52217655b#diff -19c82312ec0dbaba6a8c595db14fa56f
関連するドキュメントセクション: https ://docs.laravel-excel.com/3.1/imports/validation.html#disable -transactions
こんにちは、私は同じ状況にあります。Excelファイルを読み取る必要があり、mongodbに保存する必要があります。
修正を読みましたが、現在発生しているエラーは次のとおりです。
[[MaatwebsiteExcel \ Transactions \ TransactionManager]のNULLドライバーを解決できません。」
あなたはそれを解決する方法を知っていますか?
素晴らしいパッケージをありがとう。
編集:コレクションへのインポートを使用しましたが、機能しますが、Modelへのインポートが機能しない理由がわかりません。
コレクションはトランザクションを使用しないためです。 以前のコメントを参照してください。トランザクションを無効にする方法が説明されています。
コレクションはトランザクションを使用しないためです。 以前のコメントを参照してください。トランザクションを無効にする方法が説明されています。
こんにちは、迅速な返信ありがとうございます。
私はあなたのコメントを読みました、それで私は「[MaatwebsiteExcel \ Transactions \ TransactionManager]のNULLドライバーを解決できません」を受け取りました。 エラー。
だから私はコレクションに切り替えました
その場合、おそらく設定に何か間違ったものを入力しています。 NULL
は有効なドライバーのようには聞こえません。 'null'
(文字列であることに注意してください)はです。
私も同じ状況にあります。https: //docs.laravel-excel.com/3.1/imports/validation.html#disable-transactionsで解決策を入手しました
しかし、 Custom transaction handlers
作成方法と使用場所がわかりません
私もmongodbを持っています。 このhttps://docs.laravel-excel.com/3.1/imports/validation.html#disable-transactionsは私のために働きます。 Thx @patrickbrouwers
多分あなたたちは私が#2384でしたのと同じ問題を抱えています
たぶん私の解決策はあなたのために働くでしょう、試してみてください:
php artisan config:clear
時々、特にパッケージを更新するとき、Laravelはキャッシュをクリーンアップせず、パッケージは設定ファイルを見つけられません。 したがって、ドライバは常にNULLになり、失敗します。
多分あなたたちは私が#2384でしたのと同じ問題を抱えています
たぶん私の解決策はあなたのために働くでしょう、試してみてください:
php artisan config:clear
時々、特にパッケージを更新するとき、Laravelはキャッシュをクリーンアップせず、パッケージは設定ファイルを見つけられません。 したがって、ドライバは常にNULLになり、失敗します。
ベストアンサー
最も参考になるコメント
多分あなたたちは私が#2384でしたのと同じ問題を抱えています
たぶん私の解決策はあなたのために働くでしょう、試してみてください:
php artisan config:clear
時々、特にパッケージを更新するとき、Laravelはキャッシュをクリーンアップせず、パッケージは設定ファイルを見つけられません。 したがって、ドライバは常にNULLになり、失敗します。