ldc-le-gaulois-pro/database/seeders/Development/NewsSeeder.php
Jérémy Munsch c2d9b3d4f0
Fixup Seeds
2024-02-05 10:36:57 +01:00

61 lines
1.9 KiB
PHP

<?php
namespace Database\Seeders\Development;
use App\Lib\Helpers\FileStorageHelper;
use App\Models\News;
use App\Models\NewsCategory;
use App\Models\Product;
use Illuminate\Database\Seeder;
class NewsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// @phpstan-ignore-next-line
News::factory(10)->make()->each(function (News $news) {
$news->picture = FileStorageHelper::storeFile(
$news,
new \SplFileInfo(\resource_path(
'../database/factories/assets/news/news_fake_920_1025.jpg'
))
);
$news->picture2 = FileStorageHelper::storeFile(
$news,
new \SplFileInfo(\resource_path(
'../database/factories/assets/news/news_fake_920_1025.jpg'
))
);
$news->saveOrFail();
});
// Seeder for news_news table.
$news = News::query()->get();
News::each(function (News $model) use ($news) {
$offset = rand(0, 9);
$length = rand(0, 3);
$model->news()->saveMany($news->slice($offset, $length));
});
// Seeder for news_news_categories table.
$newsCategory = NewsCategory::query()->get();
News::each(function (News $model) use ($newsCategory) {
$offset = rand(0, 4);
$length = rand(1, 2);
$model->categories()->saveMany($newsCategory->slice($offset, $length));
});
// Seeder for news_product table.
$products = Product::query()->get();
News::each(function (News $model) use ($products) {
$offset = rand(0, 24);
$length = rand(0, 3);
$model->products()->saveMany($products->slice($offset, $length));
});
}
}