Laravel: Auth::user()->id 试图获取非对象的属性

2022-08-30 07:13:43

当我提交表单以添加用户时,我收到以下错误“尝试获取非对象的属性”,错误显然在第一行:Auth::user()->以下内容的id:

$id = Auth::user()->id;
$currentuser = User::find($id);
$usergroup = $currentuser->user_group;
$group = Sentry::getGroupProvider()->findById($usergroup);

$generatedPassword = $this->_generatePassword(8,8);
$user = Sentry::register(array('email' => $input['email'], 'password' => $generatedPassword, 'user_group' => $usergroup));

$user->addGroup($group);

有什么想法吗?我已经搜索了一段时间,我看到的一切都说这应该可以正常工作。我的用户使用 Sentry 2 身份验证捆绑包登录。


答案 1

现在有了 laravel 4.2,很容易获得用户的 id:

$userId = Auth::id();

仅此而已。

但是要检索除 id 以外的用户数据,请使用:

$email = Auth::user()->email;

有关更多详细信息,请查看文档的安全部分


答案 2

如果正在使用,请使用 检查登录用户。您得到的错误是返回NULL,它试图从NULL获取id,因此出现错误。SentrySentry::getUser()->idAuth::user()trying to get a property from a non-object


推荐