Я кодирую Facebook Войти через Laravel / Socialite.
Я использую 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');
}
Но, будьте обновлением или созданием, ключ-ключ никогда не вставляется / обновляется.Mysql показывает значение по умолчанию, Null.Другие столбцы работают нормально.
Я проверил значение key_token и его заполнение во всех контекстах.Кроме того, массив $ fillable User Model содержит «key_token».
protected $fillable = [
'name', 'email', 'password', 'key_fb', 'url_photo', 'date_lastlogin', 'key_token',
];
Я также запустил фактическую строку (полученный токен от FB) вместо $ key_token, но key_token продолжает заполняться значением Null.
(...)
'url_photo' => $url_photo,
'ḱey_token' => "IjasIJ937Jdsi823KJAndksu.......",
'date_lastlogin' => \Carbon\Carbon::now(),
(...)
При отображении $ user (из возврата UpdateOrCreate) значение для key_token равно Null
Что делать, чтобы вставить / обновить key_token?