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 登录后,如何限制用户不访问登录页面?