Laravel 5.1:检索路由名称的方法?

时间:2015-07-30 11:09:30

标签: php laravel laravel-5

有没有办法获得路由响应其名称的方法? UrlGenerator(正如我所期望的那样公平地说),只提供给定路由名称的URL。是否有服务提供商可以返回URL和路由可以响应的任何方法?如果可能的话,我宁愿不必直接挂在应用程序的路径集合中。

1 个答案:

答案 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();
}