社交功能getId()工作正常,但未在数据库phpmyadmin中添加ID

时间:2019-04-26 17:18:52

标签: laravel phpmyadmin laravel-socialite

我正在使用Laravel Socialite进行Google登录,所有scoialite函数都可以正常工作,并且数据正在添加到数据库(phpmyadmin)中,provider_id除外,该函数的getId()也可以正常工作,但未插入数据db。

public function handleProviderCallback()
    {

        try{
            $socialUser = Socialite::driver('google')->user();

        }catch(Exception $e){
            redirect('/');

        }
        $socialProvider = SocialProvider::where('provider_id', $socialUser->getId())->first();
        if(!$socialProvider){
            //create new user
            $user = User::firstOrCreate(
                ['email' => $socialUser->getEmail()],
                ['name' => $socialUser->getName()]

            );


            $user->socialProviders()->create(
                ['provider_id' => $socialUser->getId() , 'provider' => 'google']
            );
        }
        else{

            $user = $socialProvider->user;
        }

        auth()->login($user);
         return redirect('/home');
        //return $socialUser->getId();
    }

1 个答案:

答案 0 :(得分:0)

'provider_id'必须是protected $fillable模型上的SocialProvider数组,如果您想将其在数组中传递给SocialProvider->create(...)