Laravel:显示非受保护页面的登录用户

Posted

技术标签:

【中文标题】Laravel:显示非受保护页面的登录用户【英文标题】:Laravel: Displaying logged in user for for non protected pages 【发布时间】:2014-10-07 03:01:42 【问题描述】:

我有一个带有公共和受保护(即您必须登录才能访问)页面的站点。

如何在公共页面上显示已登录的用户?

对 Auth::user->name (etc) 的引用会在视图中生成“尝试获取非对象的属性”错误。

【问题讨论】:

【参考方案1】:

试试

Auth::user()->name

没有

Auth::user->name

【讨论】:

实际上这就是我正在使用的。所以我上面的帖子是不正确的。因此,当我使用 Auth::user()->name 时,我仍然会收到错误消息。 嗯..您是否尝试过将变量传递给视图而不是直接从视图访问 Auth::user()->name? 同样的事情。我认为这实际上是不可能的。我认为 laravel 根本不认识用户,除非 auth 过滤器生效。一定有办法…… 如果 Auth::user()->name 返回“Bob”,并且您发送您的视图如下:return View::make('myview')->with('name', Auth::user()->name); 您应该能够从您的视图中引用 name,它应该显示 Bob。你试过了吗? 问题是 Auth::user()->name 为空,除非请求是针对受保护的路由。我认为人们必须在会话中输入名称。【参考方案2】:

如果用户未登录,您将收到“尝试获取非对象的属性”错误。您必须首先使用 Auth::check() 来查看用户是否已登录。例如:

@if(Auth::check())
    <p> Auth::user()->name </p>
@endif

【讨论】:

以上是关于Laravel:显示非受保护页面的登录用户的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Magnolia CMS 中向登录用户显示页面的某些内容部分

使用 Laravel Guards 登录后,如何限制用户不访问登录页面?

laravel 5.2 登录后重定向到预期的网址

Laravel API 验证/保护后续请求:没有登录/注销和没有“用户”表

如何在laravel中登录后重定向特定页面

在 Laravel 5 中进行身份验证后重定向