我正在尝试为我的symfony应用程序创建一个动态路由器,其中基于某些条件,我想设置路由的前缀,基于条件的前缀正在工作,因为我使用的是静态编码条件,请参见虚拟路线,捆绑的主要symfony路线
(config / routes / annotation.php)
<?php use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
return function (RoutingConfigurator $routes) {
$resultRout = $routes->import('@MyCustomBundle/Controller/Test/', 'annotation')
->defaults(['_locale' => '%locale%'])
->requirements(['_locale' => '%app_locales%']);
// get $validate value from database
if ($validate) {
$resultRout->prefix('/{_locale}/app/{default_path}/');
} else {
$resultRout->prefix('/{_locale}/site/{new_path}/');
}
};
我面临的问题是:
1 :我需要针对不同的路由条件每次清除路由缓存。有没有办法停止路由缓存?
2 :我想访问数据库,以便可以根据数据库值创建$ validate。如何加载实体管理器?
如果还有更好的方法来实现这种类型的路由,请提出建议。