yev*_*evg 2 php routes symfony php-7 symfony4
如何使用路由名称测试 Symfony 4 中是否存在给定路由。
路线.yaml
home:
path: /
controller: App\Controller\Home::index
methods: [GET]
login:
path: /login
controller: App\Controller\Login::index
methods: [GET]
Run Code Online (Sandbox Code Playgroud)
控制器(在这里编写一个exists()方法)
$routes->exists('home'); // true
$routes->exists('login'); // true
$routes->exists('foo'); // false
Run Code Online (Sandbox Code Playgroud)
来自Symfony 4 文档...
检查路由是否存在
在高度动态的应用程序中,在使用路由生成 URL 之前可能需要检查路由是否存在。在这些情况下,请勿使用 getRouteCollection() 方法,因为这会重新生成路由缓存并降低应用程序的速度。
相反,尝试生成 URL 并捕获当路由不存在时抛出的 RouteNotFoundException:
Run Code Online (Sandbox Code Playgroud)use Symfony\Component\Routing\Exception\RouteNotFoundException; // ... try { $url = $generator->generate($dynamicRouteName, $parameters); } catch (RouteNotFoundException $e) { // the route is not defined... }
您可以将该代码放入函数中并返回您需要的任何内容。
| 归档时间: |
|
| 查看次数: |
5676 次 |
| 最近记录: |