有没有办法获得路由响应其名称的方法? UrlGenerator(正如我所期望的那样公平地说),只提供给定路由名称的URL。是否有服务提供商可以返回URL和路由可以响应的任何方法?如果可能的话,我宁愿不必直接挂在应用程序的路径集合中。
答案 0 :(得分:1)
我认为最好的解决方法是扩展UrlGenerator。然后,您可以添加一个新方法来返回路径允许的HTTP方法数组。
public function getMethodsForRoute($name)
{
if (! is_null($route = $this->routes->getByName($name)))
{
return $route->methods();
}
throw new InvalidArgumentException("Route [{$name}] not defined.");
}
作为替代方案,您可以从路由器获取当前路由并以此方式返回。然而,它稍微不那么优雅。 (注意这是未经测试的)
$name = 'route.name';
$router = app('Illuminate\Routing\Router');
if (! is_null($route = $router->getRoutes()->getByName($name)))
{
$methods = $route->methods();
}