Laravel初心者の気づきをお伝えします。
マルチ認証の登録・ログイン方法を試していました。
主に参考にしていたのは、下記のやり方です。
https://qiita.com/namizatop/items/5d56d96d4c255a0e3a87
1つ不都合なことがありました。
Adminで新規登録時に、emailがユニークになるデータベーステーブルの対象先がuserのテーブルだったのです。つまり、Adminで登録しようとした際に、Adminでユニーク判定されるのではなくて、userでユニーク判定されてしまっていました。
原因が分からず、Facad の Validatorにデータベーステーブルを指定する場所があるのかなと思い
Illuminate\Support\Facades\Validator::class,
を調べてみても、テーブルを指定しているようにも見えません。
他を調べてみたところ、
下記がテーブルを指定している場所でした…
return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]);
ここの部分
'email' => 'unique:users'
app/Http/Controllers/Admin/Auth/RegisterController.php
のuser → adminに変更してあげれば、ユニーク化する対象のテーブルがadminへ変更なります。
return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:admin'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]);