Laravel 来宾中间件

Laravel guest middleware

我的网络应用程序中有一个页面应该阻止登录用户访问。类似于已经登录的用户不应访问登录或注册页面的方式。我通过在控制器构造函数中使用来宾中间件来完成此操作。

$this->middleware("guest")->only("page_action"); // like this

在此设置中,如果登录用户尝试访问该页面,他们将被重定向到主页。但我需要显示 404 not found 页面而不是重定向。我该怎么做?

简而言之,我怎样才能让一个页面只供来宾访问,并使它看起来对登录用户来说不存在?

在您的方法中,只需检查用户是否登录,如果登录,则中止到 404,如下所示...

if(\Illuminate\Support\Facades\Auth::check()) {
    return abort(404);
}

#Rest of the code is for guest user.....
#

来宾逻辑在里面App\Http\Middleware\RedirectIfAuthenticated

if (Auth::guard($guard)->check()) {
    abort(404)
}

return $next($request);

否则,您需要像@Atiqur 建议的那样创建一个新的中间件。