【问题标题】:It return null value when i am trying to get user id当我试图获取用户 ID 时它返回空值
【发布时间】:2016-11-05 18:16:41
【问题描述】:

我正在尝试获取已登录的用户数据,例如 id、姓名、电子邮件等。我必须将此 id 与另一个名为 adminpictures 的表进行比较,然后在找到任何针对此 id 的记录时显示此图片。

这是我获取用户 ID 的代码

$id = Auth::id();
        dd($id);

但它返回 null,我想登录用户 ID。我怎么能做到这一点。 我是 laravel 的新手

【问题讨论】:

  • 您的用户登录了吗?如果用户已登录,则 Auth::user() 将返回一个用户对象,否则返回 null。因此,请在您的用户登录后验证
  • 是的用户已经登录
  • dd(Auth::user()) 的输出是什么;你的情况?
  • 空......................
  • 如果dd(Auth::user()); 返回null 这意味着用户没有活动会话。检查您的会话驱动程序是否为array。如果是这样,请将其更改为文件并尝试登录

标签: php mysql laravel


【解决方案1】:

您可以为此使用哨兵中间件。如果您使用默认用户模型作为数据库中表的模型,请在控制器中编写此代码。此代码将起作用

use Sentinel;
$user = Sentinel::getUser();
dd($user);

这将打印登录的用户 在此处参考更多关于哨兵的信息 https://cartalyst.com/manual/sentinel/2.0

【讨论】:

    【解决方案2】:

    试试这个:

    $id = Auth::user()->id;
            dd($id);
    

    【讨论】:

    • 现在我有这个错误尝试获取非对象的属性
    • “试图获取非对象的属性”这个错误现在发生
    • 我有一个用户并且用户已登录
    • 注销并重新登录
    【解决方案3】:

    你的代码中有错字,应该是

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

    而不是

    $id = Auth::id();
    

    您可以检查用户是否登录或不简单地使用

    if (Auth::check())
    {
        // The user is logged in...
        $id = Auth::user()->id;
    }
    

    【讨论】:

    • 现在我有这个错误尝试获取非对象的属性
    • 您需要先检查用户是否存在。
    • 我该怎么做?我不知道
    • 这个检查对我没有任何作用 public function index() { if (Auth::check()) { // 用户登录... $id = Auth::user()- >身份证; // dd($id);返回视图('admin.index',紧凑('id')); } }
    • 如果您已正确登录用户,这似乎可行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2023-04-08
    • 2019-08-14
    • 2018-04-15
    相关资源
    最近更新 更多