【ダミーデータの作成】laravel8系でseederを使ってダミーデータを作成してみた。

Laravel

今回はseederを使ってダミーデータを作成してみます。

使うのはlaravel8系です。

シーダーの作成

#シーダ名はアッパーキャメル型で書く。 ex.TestTableSeeder
php artisan make:seeder シーダー名TableSeeder

こちらのコマンドを使ってseederを作成します。

database/seeds/シーダー名.php

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('users')->insert([
            [
                'name' => 'test',
                'email' => 'test@test',
                'password' => bcrypt('testtest'),
            ],
            [
                'name' => 'test1',
                'email' => 'test1@test',
                'password' => bcrypt('password1'),
            ],
            [
                'name' => 'test2',
                'email' => 'test2@test',
                'password' => bcrypt('password2'),
            ],
            [
                'name' => 'test3',
                'email' => 'test3@test',
                'password' => bcrypt('password3'), //
            ],
         ]);
    }
}

パスワードはbcryptで暗号化が必要になります。ただの文字列をinsertで入力しても作成できません。

今回はuserテーブルの中にダミーデータを入れていきます。

userテーブルの内容は以下になります。

基本的に必要なのは

  • name
  • email
  • password
database/migrations/マイグレーションファイル

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->foreignId('current_team_id')->nullable();
            $table->string('profile_photo_path', 2048)->nullable();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

コマンドで実行できるようにする

そして、次に作ったシーダをコマンドで実行したときに使ってもらえるようにします。

database/seeds/DatabaseSeeder.php

//~~~~~~~~省略~~~~~~~~

public function run()
    {
        $this->call([
            UsersTableSeeder::class, // User追加のseederを呼び出すように追加
        ]);
    }

ダミーデータ作成

そしてコマンドを実行すると完成。

$ php artisan db:seed

phpmyadminを確認しに行くと、データベースの中身が埋まっていると思います。

まとめ

今回は、手動で何件かのダミーデータを作成しました。

ほかにも機械的に大量のダミーデータを作成することもできます。

CRUD機能を【Laravel8系】で作ってみる。 ダミーデータ入力

↑こちらも参考にしてみてくださいね。

参考ブログ↓

【Laravel】ユーザーをシーダーで作る

コメント

  1. […] […]

  2. […] […]

  3. […] […]

タイトルとURLをコピーしました