【发布时间】:2021-02-08 18:20:12
【问题描述】:
我正在学习 laravel 5.4 版。 我刚刚使用 laravel 和网站和管理面板制作了一个简单的博客文章应用程序
所以在前端代码常见的导航栏中如下所示
@if (Auth::guest())
<li><a href="{{ route('login') }}">Login</a></li>
<li><a href="{{ route('register') }}">Register</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->vName }} <span class="caret"></span>
</a>
</li>
在控制器中
class PostController extends Controller
{
public function __construct()
{
//$this->middleware('auth:user'); << i also tried thi
$this->middleware('auth:user')->except('index','show');
}
所以问题是我想让所有用户在没有登录的情况下阅读博客文章 但是如果我添加了这个中间件,那么用户在没有登录的情况下就无法访问这个页面。
我还尝试输入except() 关键字。添加后它可以工作,但问题出在导航栏中,它仍然显示Login/Register,而不是显示注销按钮和配置文件名称。
【问题讨论】:
-
您好 TarangP,中间件设计为在控制器之前或之后触发。您可以将中间件应用于控制器(中级技能),但我认为为了学习 - 您应该将中间件保持在您的路线上。此外,在您的情况下,您需要带有身份验证中间件的“网络”中间件,以便您的会话运行。
-
用你应该使用的正确中间件更新了我的答案
标签: php laravel authentication laravel-5 laravel-middleware