1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Laravel】Seederを使って初期データを設定する

Posted at

はじめに

Laravelには、データベースに初期データを追加するための便利な機能であるSeederが組み込まれており、データベースの初期状態を簡単に設定することができます。

Seederとは

Seederは、Laravelのデータベース初期化機能の一部であり、データベースに初期データを追加するためのクラスです。Seederを使用することで、開発環境やテスト環境のデータベースを簡単に初期化し、必要な初期データを追加することができます。

Seederを作成する

Laravelでは、artisanコマンドを使用してSeederを作成することができます。以下のコマンドを実行すると、新しいSeederクラスが生成されます。

php artisan make:seeder UsersTableSeeder

上記の例では、UsersTableSeederという名前のSeederクラスが作成されます。Seederクラスはdatabase/seedersディレクトリに作成されます。

作成されたUsersTableSeeder.phpファイルの初期状態は下記のようになっています。

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class UsersTableSeede extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

runメソッドがSeederを実行した時に処理されるメソッドです。

処理を記述する

今回は、Usersテーブルとモデルを用意して初期データを登録してみます。

class UsersTableSeede extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
       User::create([
        'id' => 1,
        'name' => 'tarou',
        'email' => 'hello@example.com',
       ]);

       User::create([
        'id' => 2,
        'name' => 'yamada',
        'email' => 'world@example.com',
       ]);
    }

DatabaseSeederを編集する

作成したSeederファイルは、DatabaseSeeder.phpから呼び出すようにして使用します。

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

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

作成したSeederクラスをcall()メソッドに渡します。

実行する

下記のコマンドを実行するとテーブルにデータが登録されます。

php artisan db:seed

DatabaseSeeder.phpに記述しなくても、特定のSeederだけ実行することができるコマンドもあります。

php artisan db:seed --class=UserTableSeeder
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?