簡體   English   中英

在 laravel 問題中注冊時分配用戶角色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM