forked from eatvio/eatvio-infra
65 lines
1.7 KiB
PHP
65 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use App\Models\BlogPost;
|
|
use App\Models\User;
|
|
use App\Models\BlogPostComment;
|
|
use App\Models\Tag;
|
|
|
|
class BlogPostSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$blogPosts = BlogPost::factory()->count(10)->create();
|
|
|
|
if (User::count() > 0 && BlogPost::count() > 0) {
|
|
|
|
$blogPosts->each(
|
|
function ($blogPost) {
|
|
User::inRandomOrder()
|
|
->first()
|
|
->author_of_blog_post()
|
|
->attach($blogPost->id);
|
|
}
|
|
);
|
|
|
|
$comments = BlogPostComment::factory()->count(5)->make();
|
|
|
|
$comments->each(
|
|
static function ($comment): void {
|
|
$comment->author()->associate(
|
|
User::inRandomOrder()
|
|
->first()
|
|
->id
|
|
);
|
|
|
|
$comment->blog_post()->associate(
|
|
BlogPost::inRandomOrder()
|
|
->first()
|
|
->id
|
|
);
|
|
|
|
$comment->saveOrFail();
|
|
}
|
|
);
|
|
|
|
$blogPosts = BlogPost::all();
|
|
|
|
$blogPosts->each(
|
|
static function ($blogPost): void {
|
|
|
|
$tags = Tag::factory()->count(5)->create();
|
|
|
|
$tagsIds = collect($tags)->map(fn($curTag) => $curTag['id']);
|
|
$blogPost->tags()->attach($tagsIds);
|
|
}
|
|
);
|
|
}
|
|
}
|
|
}
|