From 541c871bcb073f7f24cb674da89cc4fd3d4abe0f Mon Sep 17 00:00:00 2001 From: K Muller Date: Wed, 17 Dec 2025 10:50:12 +0100 Subject: [PATCH] fix: newsSeeder for pivot table --- database/factories/NewsFactory.php | 12 +----------- database/seeders/NewsSeeder.php | 24 ++++++++++++++---------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/database/factories/NewsFactory.php b/database/factories/NewsFactory.php index 47c0b0d1..a2891efb 100644 --- a/database/factories/NewsFactory.php +++ b/database/factories/NewsFactory.php @@ -28,17 +28,7 @@ class NewsFactory extends Factory 'status' => collect(NewsStatusEnum::cases())->random(), 'picture_alt' => fake()->sentence(6, true), 'picture_title' => fake()->sentence(6, true), + 'picture' => 'temp.jpg', ]; } - - public function configure() - { - return $this->afterCreating(function (News $news) { - $collection = NewsCategory::all(); - $count = $collection->count(); - $take = min($count, rand(1, 3)); - $categories = $collection->random($take)->all(); - $news->categories()->sync($categories); - }); - } } diff --git a/database/seeders/NewsSeeder.php b/database/seeders/NewsSeeder.php index 9e46a209..33290ae4 100644 --- a/database/seeders/NewsSeeder.php +++ b/database/seeders/NewsSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use App\Models\News; +use App\Models\NewsCategory; use Illuminate\Database\Seeder; use Uwil\LaravelCommon\Helpers\FileHelper; @@ -15,15 +16,18 @@ class NewsSeeder extends Seeder */ public function run(): void { - News::factory(100)->make() - ->each(function ($model) { - $model->picture = FileHelper::storeFile( - $model, - new \SplFileInfo(\resource_path( - '../database/factories/assets/news/525x295.jpg' - )) - ); - $model->saveOrFail(); - }); + $categoriesIds = NewsCategory::pluck('id'); + News::factory(10)->create()->each(function (News $news) use ($categoriesIds) { + $news->picture = FileHelper::storeFile( + $news, + new \SplFileInfo( + resource_path('../database/factories/assets/news/525x295.jpg') + ) + ); + $news->save(); + $news->categories()->attach( + $categoriesIds->random(rand(1, 3))->all() + ); + }); } }