Pushing sample data into a database with Laravel8. Model, Factory, Seeder, Faker

I'm beginner of Laravel.
So the article's purpose is memorandum.
I comment a part of edit(@edit).

make Model

php artisan make model Voca

App\Models\Voca.php

<?php

// Plese write accuracy @edit
namespace App\Models;
// Factory @edit
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Voca extends Model
{
   // @edit
   use HasFactory;
   // ignore "updated_at" and "created_at" column @edit
   public $timestamps = false;
   // set target table @edit
   protected $table = 'VocaTable';
}

make Factory

php artisan make:factory VocaFactory

database\factories\VocaFactory.php

<?php

namespace Database\Factories;
// please write accuracy @edit
use App\Models\Voca;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;

class VocaFactory extends Factory
{
   /**
    * The name of the factory's corresponding model.
    *
    * @var string
    */
   // @edit
   protected $model = Voca::class;

   /**
    * Define the model's default state.
    *
    * @return array
    */
   public function definition()
   {
       return [
           // Faker @edit
           'type' => $this -> faker -> numberBetween(1,3),
           'word1'=> $this -> faker -> realText(15),
           'word2'=> $this -> faker -> realText(15),
       ];
   }
}

The usage of faker reference is below
https://faker.readthedocs.io/en/master/

make Seeder

php artisan make:seeder VocaTableSeeder

database\seeders\VocaTableSeeder.php

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
// @edit
use Illuminate\Support\Str;


class VocaTableSeeder extends Seeder
{
   /**
    * Run the database seeds.
    *
    * @return void
    */
   public function run()
   {
      // @edit
      \App\Models\Voca::factory()->count(15)->create();
   }
}

Edit DatabaseSeeder

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
   /**
    * Seed the application's database.
    *
    * @return void
    */
   public function run()
   {
       // @edit
       $this->call(VocaTableSeeder::class);
   }
}

Migration

php artisan migrate:fresh --seed

That's all.
Thank you.

この記事が気に入ったらサポートをしてみませんか?