こんにちは、バックエンドエンジニアのハルです。
この記事では、前回に続き、Laravel入門者の私が学んだことを書いていきます。今回は、Laravelでログイン機能を用意し、楽しい気持ちになりたいと思います。
と言っても、Laravelではログイン機能の雛形が用意されているので、数コマンド実行すれば用意できるようです。では、そこに加えてMailHogでメールの送信テストまでできるようにしていきましょう。「あとは色々コードを書いて勉強するだけだな!」って気持ちになるところまでやっていきたいですね。
前回は、LaradockでLaravel開発環境を用意する記事を書きました。 初心者がLaradockでLaravelを開発するための準備の仕方をまとめるよ
この記事の続きから行っていきます。
まずは、起動するコマンドを実行します。
(ディレクトリの場所: laradock_project_name/laradock
)
$ docker-compose up -d nginx mysql phpmyadmin
workspaceコンテナに接続しバージョンを確認します。
$ docker-compose exec workspace bash
# php artisan --version
Laravel Framework 5.8.10
今回Laravelのバージョンは5.8.10ですね。
「ブラウザで確認」でhttp://localhost
を確認すると初期状態が確認できるかと思います。
データベースの準備
workspaceコンテナに接続した状態でartisanコマンドでマイグレーションを実行します。
# php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
前回の記事でphpMyAdminを用意しているので
http://localhost:8080
にアクセスしてログインします。
users
テーブルとpassword_resets
テーブルが用意されました。
見た目の部分も用意
見た目部分も用意していきます。こちらもコマンド実行で`view`・`controller`・`routes`を生成してくれます。
workspaceコンテナに接続して下記コマンドを実行します。
# php artisan make:auth
このコマンドで、
- Controllers
- views
- routes
にファイルが生成されました。
ブランザでhttp://localhost
を確認してみます。
右上に 『LOGIN』と『REGISTER』が追加されました。『REGISTER』をクリックすると、ユーザー登録画面に移動し登録ができます。
送信すると、ログイン後の画面に遷移します。
ローカル開発環境でのメールの確認方法
ログイン画面に『Forgot Your Password?』というボタンがありますね。パスワードリセットの機能があるなら、登録者のメールにパスワードをリセットするためのメールを送信したい。ですが、今はできないようです。メールテストツールのMailHogを起動してメールが確認できるようにしましょう。
下記コマンドで MailHog を追加で起動します。
$ docker-compose up -d mailhog
このコマンドを実行したら、ブラウザでhttp://localhost:8025
にアクセスして送信したメールが確認できます。では、一度パスワードリセットをしてみて確認してみましょう。
http://localhost
にアクセスしてログインしていた場合はログアウトしてください。ログアウトの状態で右上の『Login』をクリックし、『Forgot Your Password?』のリンクをクリックします。
パスワードのリセット申請フォームに移動します。パスワードをリセットしたい登録済みメールアドレスを入力して、送信します。
すると、MailHogで確認した際に、メール内容が確認できるようになっているはずです。
これでメール送信テストができる状態を確認できましたね! 心おきなく開発に集中できそうです。
今後は……
今回は、起動時に
docker-compose up -d nginx mysql phpmyadmin
というコマンドを実行していました。
MailHogというメールテストツールを使って `docker-compose up`する場合は
mailhog
を追加して下記のようなコマンドを実行することになるかと思います!
docker-compose up -d nginx mysql phpmyadmin mailhog
一応、止め方は
docker-compose stop
です。
まとめ
今回はログイン機能を、Laravelで用意されているもので設置し、メールの送信テストができる状態まで作ってみました。
この後もまだまだ覚えることがいっぱいありそうですが、がんばるぞい。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。