Advertisement
SanderCokart

ArticleSeeder

Mar 9th, 2022
962
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.97 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Database\Seeders;
  4.  
  5. use App\Models\{Article, ArticleBanner, ArticleType, User};
  6. use Illuminate\Database\Seeder;
  7.  
  8. class ArticleSeeder extends Seeder
  9. {
  10.     /**
  11.      * Run the database seeds.
  12.      *
  13.      * @return void
  14.      */
  15.     public function run()
  16.     {
  17.         $author = User::find(1);
  18.  
  19.         $this->createArticle($author, ArticleType::POST, 10);
  20.         $this->createArticle($author, ArticleType::TIPS_AND_TUTORIALS, 10);
  21.         $this->createArticle($author, ArticleType::COURSE, 10);
  22.     }
  23.  
  24.     private function createArticle(User $author, int $articleType = ArticleType::POST, int $count = 1)
  25.     {
  26.         Article::factory()
  27.             ->count($count)
  28.             ->for($author, 'author')
  29.             ->has(ArticleBanner::factory()->state(function (array $attributes, Article $article) {
  30.                 return ['article_id' => $article->id];
  31.             }), 'banner')
  32.             ->create(['article_type_id' => $articleType]);
  33.     }
  34. }
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement