LaravelでSeederを使って初期データを投入する方法

LaravelでSeederを使って初期データを投入する方法

36 回閲覧されました

みなさんこんにちは、jonioです。

今回はLaravelでSeederを使って初期データを投入する方法を解説します。

おすすめ参考書

基礎力を上げるのに一番おすすめです。

Seederの作成

下記のコマンドを叩きます。

php artisan make:seeder DemoSeeder

「DemoSeeder」の「D」は大文字にして下さい。

これでSeederが作成されます。

作成したSeederに記述

テーブルにデータを投入する為に「Laravelのプロジェクト > database > seeders > DemoSeeder.php」に下記の記述(サンプル)をします。

<?php

namespace Database\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Demo;                   //この行を追加

class MovieSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
    
    
        //ここから追加
        Demo::insert([
            [
                'name' => 'jonio',
                'created_at' => '2024-09-01',
                'updated_at' => '2024-09-01'
            ],
        ]);
        //ここまで追加
        
        
    }
}

19行目の「Demo」はSeederの名前です。

DatabaseSeeder.phpに記述

記述をしたらDemoSeeder.phpと同じ階層にあるDatabaseSeeder.phpに下記の記述をします。

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;


class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call(DemoSeeder::class);      //この行を追加
    }
}

Seederを適用

下記のコマンドを叩きます。

php artisan db:seed --class=DemoSeeder

「DemoSeeder」はDemoSeeder.phpのphpを取った名前です。

これでデータの投入ができます。