[英]Assigning user role upon registration in laravel issue
在我的 laravel 應用程序中,我試圖在注冊時分配用戶角色。 以下是我的注冊控制器
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'mobile'=>$data['mobile'],
'username'=>$data['username'],
'password' => Hash::make($data['password']),
'propic'=>'user-pic.png',
'user_roles' =>'customer',
]);
$lastdata = DB::table('users')->orderBy('id', 'desc')->first();
$last_id=$lastdata->id;
$user= User::where('id','=',$last_id)->firstOrFail();
$user->assignRole('customer');
}
但是當我運行創建用戶的代碼時,激活郵件已發送但角色未分配? 我該如何解決這個問題,我在哪里做錯了?
您可能需要考慮一些事項。
1)您的 function 在返回語句后不會繼續進行。 您正在創建一個帶有 return 語句的用戶,因此您下面的代碼將不會執行。 我建議將返回的 object 存儲到某個變量中。
// let's say
$user = User::create([
'name' => $data['name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'mobile'=>$data['mobile'],
'username'=>$data['username'],
'password' => Hash::make($data['password']),
'propic'=>'user-pic.png',
'user_roles' =>'customer',
]);
// then you can simply get it's value by
$user_id = $user->id; // you won't need to query last added row's value.
2) 如果用戶角色未保存到您的數據庫中,請檢查您是否已將“user_roles”字段指定為可填充到用戶 model。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.