Laravelでユーザー登録時に、デフォルトで役割を割り当てる方法を解説します。
attach関数を使うと、シンプルなコードで作れてしまいます。
UserとRoleモデルはBelongsToManyでリレーションを作ってあるという想定で説明します。
リレーションの作り方は、下記を参考にしてください。
Laravel ユーザーにデフォルトのRoleを割り当てる方法
app/Http/Controllers/Auth のRegisterController.phpを開きます。
protected function create(array $data) を次のように変更します。
【変更前】
【変更後】
returnをいれると、そのあとのコードが反映されなくなります。
そこで最初の【return】は取り除き、【$user=】に置き換えます。
ユーザーデータを作成した後は、下記をいれます。
$user->roles()->attach(デフォルトでいれたいrole id);
最後にreturn $user; で締めくくります。
Attach関数を使うと、シンプルに役割を割り当てられて、便利ですね。
Attachの使い方は、こちらの記事でも紹介しているので、参考にしてください。