ユーザーの新規登録の実行の流れとバリデーションとフォームリクエストの両方の書き方

①routeを作成

 ・表示

 

ユーザー登録の基本的なコードをLaravelで提供します。Laravelはユーザー認証を簡単に実装できるため、以下のステップを通じてユーザー登録機能を追加できます。

1. **モデルの作成**:

   最初に、ユーザーデータを保存するためのユーザーモデルを作成します。

   ```bash
   php artisan make:model User
   ```

   これにより、`User`モデルが`app/Models`ディレクトリ内に生成されます。

2. **マイグレーションの作成**:

   ユーザー情報を保存するためのテーブルをデータベースに作成するために、マイグレーションを作成します。

   ```bash
   php artisan make:migration create_users_table
   ```

   生成されたマイグレーションファイルを編集し、ユーザー情報のカラムを定義します。例えば、以下のようになります。

   ```php
   public function up()
   {
       Schema::create('users', function (Blueprint $table) {
           $table->id();
           $table->string('name');
           $table->string('email')->unique();
           $table->string('password');
           $table->timestamps();
       });
   }
   ```

   マイグレーションを実行してテーブルを作成します。

   ```bash
   php artisan migrate
   ```

3. **ユーザー登録コントローラ**:

   ユーザー登録に関するコントローラを作成します。

   ```bash
   php artisan make:controller RegisterController
   ```

   このコントローラ内でユーザー登録と関連するアクションを実装します。

4. **ユーザー登録フォーム**:

   ユーザー登録フォームのビューを作成します。通常、`resources/views/auth/register.blade.php`などのファイルにフォームを作成します。フォームには`name`、`email`、`password`の入力フィールドが含まれることが一般的です。

5. **ユーザー登録ルート**:

   ユーザー登録フォームの表示とユーザー登録処理のルートを設定します。`routes/web.php`内で設定します。

   ```php
   Route::get('/register', 'RegisterController@showRegistrationForm')->name('register');
   Route::post('/register', 'RegisterController@register');
   ```

6. **ユーザー登録処理**:

   `RegisterController`内でユーザー登録処理を実装します。以下は一般的なコード例です。

   ```php
   public function register(Request $request)
   {
       // バリデーション
       $this->validate($request, [
           'name' => 'required|string|max:255',
           'email' => 'required|string|email|max:255|unique:users',
           'password' => 'required|string|min:8|confirmed',
       ]);

       // ユーザーの作成と保存
       $user = new User;
       $user->name = $request->name;
       $user->email = $request->email;
       $user->password = Hash::make($request->password);
       $user->save();

       // ログイン
       auth()->login($user);

       return redirect('/home'); // ユーザーをログイン後のページにリダイレクト
   }
   ```

   このコードでは、ユーザー入力のバリデーション、新しいユーザーの作成と保存、そしてユーザーを自動的にログインさせてリダイレクトします。

これにより、基本的なユーザー登録の機能がLaravelで実装されます。ただし、セキュリティとユーザーエクスペリエンスの向上のために、追加の対策や機能を実装することが一般的です。

 

 

フォームリクエストの書き方

public function authorize()
{
    return true; // 通常はtrueでOK
}

public function rules()
{
    return [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:8|confirmed',
    ];
}