UpdateOrCreate无法更新一列

时间:2018-12-19 15:24:57

标签: php laravel eloquent facebook-login laravel-socialite

我正在使用Laravel / Socialite对Facebook登录进行编码。

我在回调函数中使用UpdateOrCreate,所以如果用户不存在,Laravel将创建一条新记录,否则,将更新现有记录中的一些数据。

public function handleProviderCallback()
    {
        $user = Socialite::driver('facebook')->stateless()->user();

        $key_token = $user->token;
        $key_fb = $user->getId();        
        $name = $user->getName();      
        $email = $user->getEmail(); 
        $url_photo = $user->getAvatar();   

        $user = User::updateOrCreate(
            [
                'email' => $email
            ],
            [   
                'name' => $name,
                'key_fb' => $key_fb,
                'url_photo' => $url_photo,
                'ḱey_token' => $key_token,
                'date_lastlogin' => \Carbon\Carbon::now(),
            ]
        );

        Auth::loginUsingId($user->id);
        return redirect('home');
}

但是,作为“更新”或“创建”,绝不会插入/更新“ key_token”。 Mysql显示默认值Null。其他列工作正常。

我检查了key_token的值,并在所有上下文中填充了它。 同样,用户模型$ fillable数组包含“ key_token”。

protected $fillable = [
        'name', 'email', 'password', 'key_fb', 'url_photo', 'date_lastlogin', 'key_token',
    ];

我也已经在$ key_token位置运行了实际的字符串(从FB接收到的令牌),但是key_token继续用Null值填充。

(...)

 'url_photo' => $url_photo,
 'ḱey_token' => "IjasIJ937Jdsi823KJAndksu.......",
 'date_lastlogin' => \Carbon\Carbon::now(),

(...)

回显$ user(从UpdateOrCreate返回)时,key_token的值为Null

要插入/更新key_token怎么办?

0 个答案:

没有答案