61 lines
1.9 KiB
PHP
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));
|
|
});
|
|
}
|
|
}
|