[英]Check if route exists in Symfony 4
如何使用路由名称测试Symfony 4中是否存在给定路由。
routes.yaml
home:
path: /
controller: App\Controller\Home::index
methods: [GET]
login:
path: /login
controller: App\Controller\Login::index
methods: [GET]
控制器 (在此处构成一个exists()
方法)
$routes->exists('home'); // true
$routes->exists('login'); // true
$routes->exists('foo'); // false
从Symfony 4文档中 ...
检查路线是否存在
在高度动态的应用程序中,可能有必要在使用路由生成URL之前检查路由是否存在。 在这种情况下,请勿使用getRouteCollection()方法,因为这会重新生成路由缓存并减慢应用程序的速度。
相反,尝试生成URL并捕获不存在路由时引发的RouteNotFoundException:
use Symfony\Component\Routing\Exception\RouteNotFoundException;
// ...
try {
$url = $generator->generate($dynamicRouteName, $parameters);
} catch (RouteNotFoundException $e) {
// the route is not defined...
}
您可以将该代码放入函数中,然后返回所需的任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.