新規登録機能


新規登録機能について

※とある未熟者エンジニアの備忘録です。(laravel6)

Laravelでは簡単に新規登録機能を実装する事ができます。
ルートは仮で設定したルートを用意し説明していきます。

php artisan route:list
上記コマンドにてログイン機能のルートが確認できます。
App\Http\Controllers\Auth\RegisterController.phpのshowRegistrationFormアクションメソッドを使うという設定を行い、そしてregisterという名前付きでルートを用意したとします。

次にviewを書く作業の説明です。
resources\viewsの中にauthフォルダを作成します。
ここに簡潔なregister.blade.phpを作る事にします。

<h1>新規ユーザー登録画面</h1>
<form action="{{ route('register') }}" method="post">
  @csrf
  <label>name</label>
  <input type="text" name="name" placeholder="店名を入力してください">
  <label>email</label>
  <input type="email" name="email" placeholder="emailを入力してください">
  <label>password</label>
  <input type="password" name="password" placeholder="パスワードを入力してください">
  <label>confirm_password</label>
  <input type="password" name="password_confirmation" placeholder="パスワードを入力してください">
  <input type="submit" value="登録">
</form>

これで新規登録機能は完了です。

これだけ?という疑問が生まれると思いますので、
どこで新規登録機能の処理がされているのか見ていきましょう。

実は冒頭で説明したRegisterController.phpの中にshowRegistrationFormアクションメソッドは書かれていません。
showRegistrationFormアクションメソッドの代わりに
use RegistersUsers;
が途中で書かれています。
一番上にはuse Illuminate\Foundation\Auth\RegistersUsers;と記載がありますので、
このRegistersUsers;の場所は
vendor\laravel\framework\src\illuminate\Foundation\Auth\RegistersUsers;
ここに書かれています。

このRegistersUsers;の中を見てみると
showLoginFormアクションメソッドが書かれています。

public function showRegistrationForm()
    {
        return view('auth.register');
    }

viewを作成するディレクトリも指定がされている為、
resources/viewsの中にauthフォルダを作成します。
authフォルダの中に次は冒頭で出てきましたregister.blade.phpを作成します。

バリデーションも機能している為、パスワードを入力する際は最低でも8文字を満たすようにしましょう。エラーメッセージは設定されていないので、8文字未満でパスワードを設定してしまうとDBに反映されませんのでご注意下さい。