LoginSignup
13

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-02-25
1 / 7

はじめに

  • 業務でユーザー自身に登録させる仕様は少ない。
  • コマンドラインから初期ユーザーを登録する必要がある。
  • シーダーの使い方をまとめておく。

シーダーの作り方

以下のコマンドで Users テーブルのシーダーを作成できる。

php artisan make:seeder UsersTableSeeder

記述方法

ファイルは database/seeds/UsersTableSeeder.php として作成される。

<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class DatabaseSeeder extends Seeder
{
    /**
     * データベース初期値設定の実行
     * @return void
     */
    public function run()
    {
        DB::table('users')->insert([
            'name' => 'UserName',
            'email' => 'User@mailaddress.com',
            'password' => bcrypt('password'),
        ]);
    }
}

パスワードが bcrypt で暗号化しなければならないので、単純な insert 文ではデータを作成できない。


呼び出し

コマンドラインから呼び出せるように database/seeds/DatabaseSeeder.php にクラスを登録する必要がある。

<?php
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call([
            UsersTableSeeder::class, // 呼び出すように追加
        ]);
    }
}

実行コマンド

seeder をすべて実行する。

$ php artisan db:seed

特定のクラスを指定して実行する。

$ php artisan db:seed --class=UsersTableSeeder

さいごに

とにかく auth でログインを作っても、ユーザーがないとログインもできない。
[登録]を削ると新規ユーザーも登録できない。
シーダーで初期ユーザーを登録しておけば、ログインはできるし、
後でゆっくりユーザー管理機能を実装できるね。

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
13