如何在Laravel中检查当前请求或路由是否是Auth :: routes()的一部分

时间:2019-11-04 02:31:44

标签: php laravel laravel-blade

我试图在默认的app.blade.php文件中隐藏侧边栏,而无需创建新的布局文件。

如果请求或路由是Auth::routes()创建的请求或路由的一部分,我试图添加if语句以隐藏侧边栏

我知道我可以列出一堆Request::is('login')Request::is('register')等...

我只是想知道是否有一个简单的catch all来检查请求是否是与auth相关的任何页面。

谢谢!

3 个答案:

答案 0 :(得分:1)

一种方法是偷偷摸摸地使用actions数组作为Route。在定义组时,这些属性将与Route的属性合并。

使用authroutes(或您想要的任何其他名称)属性设置组:

Route::group(['authroutes' => true, ....], function () {
    Auth::routes(...);
});

在视图中,您可以检查当前路线以查看其是否具有此authroutes动作属性:

@if (Request::route()->getAction('authroutes', false))
    // this is one of the routes from `Route::auth`
@endif

getAction带有我们要查找的属性和默认值。

答案 1 :(得分:0)

您可以创建一个帮助程序功能来检查身份验证路由。

function checkAuthRoute() {
 $routes = \Route::getRoutes();
 // iterate routes
 foreach($routes as $route){
   // your logic here
 }

}

答案 2 :(得分:0)

检查当前路线名称是否在所需列表内。

@if (in_array(request()->route()->getName(), ['login', 'register']))

// Request is in Auth Routes

@else

// Request not in Auth Routes

@endif