Laravelのシーダーは、私のモデルでさまざまなモデルイベントを実行し、Product::saved()
モデルイベントからの新規注文通知メールをトリガーします。
これにより、データベースのシードが大幅に遅くなります。 a Seedが実行されているかどうかを検出し、実行されている場合は、モデルイベントを実行しないようにLaravelに指示することは可能ですか?
Model
クラスには、イベントを無視できる関数があります。
モデルを使用してシードする前に、次のようなことを行う必要があります...
YourModel::flushEventListeners();
この場合、Eloquentモデルからディスパッチャーを削除することをお勧めします。
例えば。
// Check Dispatcher
Model::getEventDispatcher()
// Remove Dispatcher
Model::unsetEventDispatcher()
// Add Dispatcher
Model::setEventDispatcher(new \Illuminate\Events\Dispatcher);