- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题很明显。
我们知道使用 Route::getRoutes()
方法可以像这样获取 laravel 项目中所有定义的路由:
$routeCollection = Route::getRoutes();
$arr = [];
foreach ($routeCollection as $value) {
$arr[] = $value->getPath();
}
return array_unique($arr);
但我想在特定路径中获取所有已定义的路由,例如 /admin
。
我认为可以将路径名传递给 getRoutes()
来执行此操作,但对我不起作用。
我该怎么做?
最佳答案
这是一个利用 Laravel 集合的解决方案:
$routes = collect(Route::getRoutes()->getRoutes())->reduce(function ($carry = [], $route) {
!starts_with($route->getPath(), 'admin') ?: $carry[] = $route->getPath();
return $carry;
});
现在 routes
数组将返回以 admin
开头的路由路径列表。这是那里发生的事情:
使用 Route::getRoutes()
将返回 RoutesCollection
它有自己的 getRoutes
方法,该方法返回 Illuminate\Routing\Route
的平面数组实例。然后,您可以将其传递给 collect
方法,该方法将返回所有这些路由的 Collection
。
现在您只需删除不以 admin
开头的值。如果这是一个简单的值数组,可以使用 filter
轻松实现方法,但由于这是一个对象数组,并且您希望只能通过对 getPath
的方法调用访问 path
字符串,因此集合的 reduce
可以改用方法作为解决方法。
另外,您会注意到条件检查路径是否以 admin
开头,而不是 /admin
。这是因为 Laravel 路由器会在构建路由集合时自动去除前导斜线。
您可以在 Laravel Documentation 中阅读有关集合的更多信息.
关于php - 通过 Route::getRoutes() laravel 方法获取特定路径的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448512/
本文整理了Java中com.zsmartsystems.zigbee.ZigBeeNode.getRoutes()方法的一些代码示例,展示了ZigBeeNode.getRoutes()的具体用法。这些
问题很明显。 我们知道使用 Route::getRoutes() 方法可以像这样获取 laravel 项目中所有定义的路由: $routeCollection = Route::getRoutes()
如果有多条腿,则每条腿报告的距离相同。知道为什么吗?它向右报告前两条腿之间的距离,但随后每隔一条腿之间的距离与第一条腿之间的距离相同。此时可能只是咖啡因过量,但我不明白为什么。 这是代码: funct
我正在循环中执行CamelContext.addRoutes(),最后如果我检查CamelContext.getRoutes().size(),它会返回0,直到上下文启动。 仅在添加任何路由时才启动上
本文整理了Java中org.springframework.cloud.netflix.zuul.filters.ZuulProperties.getRoutes()方法的一些代码示例,展示了Zuul
我是一名优秀的程序员,十分优秀!