我刚刚发现Auth Facade只有在包含auth中间件的情况下才能工作。不幸的是,包括auth中间件会强制用户在没有登录的情况下进行重定向。这意味着路由只能用于登录用户,或者仅适用于未登录的用户。
我希望有一个页面,无论用户是否登录,都可以访问该页面,但如果用户对象显示,则会显示一些其他数据。我该怎么做?
看起来最简单的方法是创建两个路由,这两个路由都由相同的控制器方法支持。这是最好的方法吗?
编辑: 通过进一步的调查,我发现问题是默认的防护不是用户登录的那个,我能够获得登录的用户auth :: guard() - > user()代替of Auth :: user()。我无法全局更改默认防护,因此问题变为:有没有办法在每个路由的基础上设置默认防护?或者我需要在任何地方使用auth :: guard()吗?
答案 0 :(得分:5)
在视图中使用git pull
检查用户是否已登录
答案 1 :(得分:0)
您可以使用Auth :: check()
if($user = Auth::check())
{
echo 'logged in';
}else{
echo 'not logged in';
}