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

8 浏览
0 Comments

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

当我提交一个表单来添加一个用户时,我得到了以下错误:“尝试获取一个非对象的属性”,这个错误显然在以下代码的第一行:Auth::user()->id:\n

$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);

\n有什么想法吗?我已经搜索了一段时间,但是我看到的所有内容都说这应该正常工作。我的用户是使用Sentry 2身份验证包登录的。

0
0 Comments

在Laravel中使用`Auth::user()->id`时出现问题`trying to get a property of a non-object`的原因是尝试从一个非对象中获取属性。解决方法是在使用`Auth::user()->id`之前先进行`Auth::check()`的检查来确保用户已经成功登录。

在代码中添加以下判断:

if (Auth::check()) {
    // 用户已经成功登录...
}

这样,当用户已经成功登录时,`Auth::user()->id`将会返回一个有效的对象。

如果想要在Blade模板中使用这个判断,可以使用以下代码:

@auth
    {{ Auth::user()->id }}
@endauth

这在需要获取用户ID用于JavaScript或Ajax的情况下非常有用。

对于Laravel 6版本,也可以使用相同的方法来解决该问题。

0
0 Comments

问题出现的原因是使用了错误的方法来获取当前登录用户的ID。正确的方法是使用Sentry::getUser()->id来获取当前登录用户的ID。错误的方法Auth::user()返回了NULL,然后试图从NULL中获取ID,因此出现了错误trying to get a property from a non-object

解决方法是使用正确的方法Sentry::getUser()->id来获取当前登录用户的ID。另外,也可以使用方法链auth()->user()->name来获取当前登录用户的名称。

0
0 Comments

Laravel: Auth::user()->id trying to get a property of a non-object问题的出现是因为在使用Auth::user()->id获取用户id时,尝试访问了一个非对象的属性。解决方法是确保用户已经通过身份验证并且已登录,然后才能访问用户的属性。

在Laravel 4.2中,可以通过Auth::id()轻松地获取用户的id,代码如下:

$userId = Auth::id();

但是,如果想要获取用户的其他数据而不仅仅是id,可以使用Auth::user()->属性名的形式,例如获取email:

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

在Laravel 4.2的文档的安全部分可以找到更多详细信息。

需要注意的是,在Laravel 6.0及更高版本中,可以使用use Illuminate\Support\Facades\Auth;导入Auth类,然后直接使用Auth::id()来获取用户id,如下所示:

use Auth;

这样就能得到相同的结果。

Laravel: Auth::user()->id trying to get a property of a non-object问题的原因是尝试访问一个非对象的属性。解决方法是确保用户已经通过身份验证并登录,然后才能访问用户的属性。在Laravel 4.2中,可以使用Auth::id()获取用户id,而在Laravel 6.0及更高版本中,可以使用use Auth;导入Auth类来获取用户id。

0