大家好我需要一点帮助,我刚刚和Laravel Socialite一起做了一个auth控制器。我第一次检索名称和电子邮件数据,然后我尝试检索性别,但它附带一个错误,说
未定义的属性:Laravel \ Socialite \ Two \ User :: $ gender
有人请帮我解决我的问题哦,是的,我的网络仍然处于开发模式,但我认为这不是问题,因为在Facebook开发人员文档中说我仍然可以访问基本信息,如名字,姓氏,个人资料图片,性别和年龄范围。
控制器源代码:
public function redirectToProvider()
{
return Socialite::driver('facebook')->redirect();
}
public function handleProviderCallback()
{
try {
$user = Socialite::driver('facebook')->user();
} catch (Exception $e) {
return Redirect::to('login/facebook');
}
$authUser = $this->findOrCreateUser($user);
Auth::login($authUser, true);
return Redirect::to('home');
}
private function findOrCreateUser($fbUser)
{
if ($authUser = User::where('email', $fbUser->email)->first()) {
return $authUser;
}
$role = "member";
return User::create([
'firstname' => $fbUser->name,
'email' => $fbUser->email,
'gender' => $fbUser->gender,
'role' => $role
]);
}
在这里,如果我使用dd($user);
方法,我会提供我所拥有的内容:
User {# ▼
+token: "tokken value"
+id: "id value"
+nickname: null
+name: "name value"
+email: "email value"
+avatar: "avatar value"
+"user": array:value [▶]
+"avatar_original": "avatar_original value"
}
答案 0 :(得分:0)
'gender' => $fbUser->user['gender'],
因为性别来自user []数组......所以你可以这样访问它。
但请记住,您需要获得Facebook的权限才能让您的应用获取此值。