我正在尝试设置一个索引页面,该页面将打印出API中的所有端点(使用Symfony 4)。
在Symfony 2中,您可以通过容器获取路由器,然后收集路由。但是,似乎你没有在Symfony 4中开箱即用的容器。
谷歌搜索似乎没有产生我正在寻找的精确结果。在Symfony 4或类似的东西中是否有另一种方法可以做到这一点?
答案 0 :(得分:6)
所以我把各个部分放在一起:
最简单的方法似乎是注入Symfony\Component\Routing\RouterInterface
然后将其用作Router
。正如我在问题中提到的,您可以使用$router->getRouteCollection()->all()
获取路由,其中$router
是注入的依赖项。
E.g:
use Symfony\Component\Routing\RouterInterface;
public function someMethodInController(Request $request, RouterInterface $router)
{
$routes = $router->getRouteCollection()->all();
// ...
}
答案 1 :(得分:4)
在任何控制器中使用,这将返回一组可用的路径对象。
$router = $this->get('router');
$routes = $router->getRouteCollection()->all();