Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel通过请求类型方法获取路由列表_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel通过请求类型方法获取路由列表

Php Laravel通过请求类型方法获取路由列表,php,laravel,laravel-5,Php,Laravel,Laravel 5,我使用的是Laravel6.1。我正在尝试为用户添加、编辑、删除和查看动态权限 $routes = []; foreach (Route::getRoutes()->getIterator() as $route){ $routes[] = $route->uri; } 这将返回所有路由url列表,但这里的问题是它下面的参数路由列表 post-detail/{categoryId}/{postid} 如何在中间件中比较url是否与此路由匹配 还可以获取路由列表中的路

我使用的是Laravel6.1。我正在尝试为用户添加、编辑、删除和查看动态权限

$routes = [];

foreach (Route::getRoutes()->getIterator() as $route){

    $routes[] = $route->uri;

}
这将返回所有路由url列表,但这里的问题是它下面的参数路由列表

post-detail/{categoryId}/{postid}
如何在中间件中比较url是否与此路由匹配


还可以获取路由列表中的路由类型。

路由对象有一个
匹配
方法来查看请求是否匹配路由,该方法还可以检查HTTP方法:

$route->matches($request, true);

您还可以要求路由集合为当前请求找到匹配的路由:

$route = Route::getRoutes()->match($request);
虽然这只是当前路由:
$request->route()

虽然我不太确定你仅仅通过遍历这些路径来尝试做什么


路由响应的HTTP方法可以通过
$Route->methods()
检索


当前请求的HTTP方法可以通过
$Request->method()

@lagbox访问。谢谢。是否可以获取路由请求类型。因为我的路由名为route::any。因此我可以在db中路由请求类型并比较请求type@lagbox.one更多查询。dd(Route::getRoutes());将打印\Routing\routedCollection{37▼ #路由:阵列:7[▼ “GET”=>数组:123[▶] “头”=>数组:123[▶] “POST”=>数组:100[▶] “PUT”=>数组:79[▶] “补丁”=>阵列:79[▶] “删除”=>数组:91[▶] “选项”=>数组:79[▶] .如何获取这些路由方法lsit
route::getRoutes()->getRoutesByMethod()
,那么就有了一个包含方法类型索引的数组