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.
この記事が気に入ったらサポートをしてみませんか?