如何通过使用路由名称来测试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()
答案 0 :(得分:0)
检查路线是否存在
在高度动态的应用程序中,可能有必要在使用路由生成URL之前检查路由是否存在。在这种情况下,请不要使用getRouteCollection()方法,因为这会重新生成路由缓存并减慢应用程序的速度。
相反,尝试生成URL并捕获路由不存在时引发的RouteNotFoundException:
use Symfony\Component\Routing\Exception\RouteNotFoundException;
// ...
try {
$url = $generator->generate($dynamicRouteName, $parameters);
} catch (RouteNotFoundException $e) {
// the route is not defined...
}
您可以将该代码放入函数中,并返回所需的任何内容。