Auth機能にシーダーを実行&各画面の確認(Laravel6)

前回、Laravel6 でログイン機能を作成しました。

今回はテストデータをDBテーブルに入れて(シーダーといいます)、各画面の確認をしたいと思います。

 

前提知識

Laravelにデフォルトでついているシーダーという機能を使います。

よくわからない方は以下をご参考ください。

 

手順

 

シーダーファイル(スケルトン)の作成

以下のコマンドでシーダーファイル(スケルトン)を作成します。


php artisan make:seeder UsersTableSeeder

 

シーダーファイルの編集

先ほどのコマンドでdatabase/seeds/UsersTableSeeder.php というシーダーのスケルトンファイルが作成されます。

レコードの追加はEloquentとDBファサード2つのやり方があります。

Eloquentだとモデルを作成する必要があるので、今回はDBファサードを使ってテストデータを挿入してみました。


public function run(){

  # 初期化
  DB::table('users')->delete();
  
  # テストデータ挿入
  DB::table('users')->insert([
         [
              'name'    => 'user1',
              'email' => 'user1@example.com',
              
              # 「secret」でログイン
              'password' => Hash::make('secret'),

              # 以下はなくてもOK
              'remember_token' => str_random(10),
              'created_at' => date('Y-m-d H:i:s'),
              'updated_at' => date('Y-m-d H:i:s') 
           ]
      ]);

}

Laravel6では文字列(str_***)や配列(array_***)のヘルパはデフォルトから削除されました。
str_random()ヘルパ を使う場合は、composer require laravel/helpersでパッケージを入れる必要があります。

 

DatabaseSeeder.phpの編集

先ほど作ったシーダーファイルを DatabaseSeeder.php から呼び出します。

DatabaseSeeder.php はデフォルトで用意されています。


:
public function run()
{
  # UserTableSeeder を呼び出すよう登録
  $this->call(UsersTableSeeder::class);
}
:

 

シーダーの実行


# シーダーすべて実行
$ php artisan db:seed

 

DBテーブルの確認

 

各画面の確認

ルートの確認

まずは、自動生成されたログイン機能のルートを確認してみます。

artisanコマンド(php artisan route:list)で確認できます。

 

/(Welcome画面)

 

/register(会員登録画面)

この画面で新規登録すると、ログインされてダッシュボードの画面にリダイレクトされます。

HTMLのバリデーションもかかってますが、Laravel側でもバリデーションをかけているみたいですね。

 

バリデーション(HTML側)

 

バリデーション(Laravel側)

/src/app/Http/Controllers/Auth/RegisterController.php

 

/login(ログイン画面)

「Remember Me」のチェックボックスはログイン維持機能のことです。
ここをチェックするとusersテーブルの remember_token にハッシュ値が入るようになります。
 

「Forgot Your Password?」をクリックするとパスワードリマインダー(/password/reset)へ

 

/home(ダッシュボード)

先ほどのログイン画面から、シーダーで入れたメールアドレスとパスワードを入力して、ログインします。

メールアドレス:user1@example.com
パスワード:secret

 
以上です。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-チュートリアル, 初級