前回、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')
]
]);
}
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(ログイン画面)
「Forgot Your Password?」をクリックするとパスワードリマインダー(/password/reset)へ
/home(ダッシュボード)
先ほどのログイン画面から、シーダーで入れたメールアドレスとパスワードを入力して、ログインします。
パスワード:secret
以上です。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。