【laravel】データベースに初期データを入れる

laravel_seeder

私はテスト用のログイン情報やマスターデータをDBに入れるときにSeederを使用します。

Seederファイルを生成

Seederファイルを生成するには、下記のコマンドを実行する

php artisan make:seeder TestUsersTableSeeder #シーダー名

database/seeds の中にTestUsersTableSeederファイル生成される

<?php

use Illuminate\Database\Seeder;

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

run( )メソッドの中に登録したいデータを書いていく

run( )メソッドはdb:seed artisanコマンドが実行された時に呼び出される

<?php
 use Illuminate\Database\Seeder;
 class TestUsersTableSeeder extends Seeder
 {
     /**
      * Run the database seeds.
      *
      * @return void
      */
     public function run()
     {
         DB::table('users')->insert([
             'name' => 'ユーザー',
             'email' => 'user@test.mail',
             'password' => bcrypt('123456'),
         ]);
     }
 }

DatabaseSeederに追記

database/seeds/DatabaseSeeder に追加したSeederファイル名を追記する

<?php
 use Illuminate\Database\Seeder;
 class DatabaseSeeder extends Seeder
 {
     /**
      * Run the database seeds.
      *
      * @return void
      */
     public function run()
     {
         $this->call(TestUsersTableSeeder::class);
     }
 }

データベースにデータを追加

下記のコマンドで、DatabaseSeederが実行されデータが登録される

php artisan db:seed

個別で実行したい場合のコマンドは、

php artisan db:seed --class=TestUsersTableSeeder

これでデータベースにデータを入れる事ができる

insertメソッド

insertメソッドは、データベーステーブルにレコードを挿入するためのメソッド
挿入するカラム名と値の配列を引数に取る

bcrypt

BCryptは、パスワードを暗号化にする

データベースの中には(2y2y10$Sc)このようにパスワードが表示される

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA