检查Symfony 4中是否存在路由

时间:2019-06-27 00:12:27

标签: php symfony routing symfony4 php-7

如何通过使用路由名称来测试Symfony 4中是否存在给定路由。

routes.yaml

private fun getBoolean(context: Context, key: String, defaultValue: Boolean): Boolean {
    return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(key, defaultValue)
}

private fun setBoolean(context: Context, key: String, value: Boolean) {
    val editor = PreferenceManager.getDefaultSharedPreferences(context).edit()
    editor.putBoolean(key, value)
    editor.apply()
}

控制器(在此处构成home: path: / controller: App\Controller\Home::index methods: [GET] login: path: /login controller: App\Controller\Login::index methods: [GET] 方法)

exists()

1 个答案:

答案 0 :(得分:0)

Symfony 4 Documentation ...

检查路线是否存在

在高度动态的应用程序中,可能有必要在使用路由生成URL之前检查路由是否存在。在这种情况下,请不要使用getRouteCollection()方法,因为这会重新生成路由缓存并减慢应用程序的速度。

相反,尝试生成URL并捕获路由不存在时引发的RouteNotFoundException:

use Symfony\Component\Routing\Exception\RouteNotFoundException;

// ...

try {
    $url = $generator->generate($dynamicRouteName, $parameters);
} catch (RouteNotFoundException $e) {
    // the route is not defined...
}

您可以将该代码放入函数中,并返回所需的任何内容。