Laravelで検索ではみつからないちょっとした実装集

Laravelで検索ではみつからないちょっとした実装集

48 回閲覧されました

みなさんこんにちは、jonioです。

「こういう時はどうやって実装するんだろう」と思って調べてもユーザー登録機能とかなら見つかりますがユーザー登録時に権限を0に設定したいなど細かい部分の実装は中々見つけることができません。

私もそれを何度も経験していますがそんな時の為に自分用のメモとしてこの記事を残します。

新しい内容を発見次第追記していきます。

おすすめ参考書

基礎力を上げるのに一番おすすめです。

Laravelのバージョン

私の開発バージョンは8系か10系です。

ユーザーの権限設定

Breezeでユーザー登録ができるようにしてusersテーブルにrole_type_idカラムを追加したとします。

ユーザー登録時に登録ユーザーがいないならrole_type_idカラムの値を1に設定して登録ユーザーがいる場合は2に設定します。

RegisteredUserController.php

下記の追記をします。

public function store(Request $request): RedirectResponse
{
  $request->validate(
    [
      'name' => ['required', 'string', 'max:255'],
      'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class],
       'password' => ['required', 'confirmed', Rules\Password::defaults()],
       'g-recaptcha-response' => ['required', 'captcha']
    ],
  );

  $role_type_id = User::count() == 0 ? 1 :2;     //この行を追加

  $user = User::create([
    'name' => $request->name,
    'email' => $request->email,
    'password' => Hash::make($request->password),
    'role_type_id' => $role_type_id                 //この行を追加
  ]);

これでrole_type_idカラムの値の設定ができます。