我正在寻找一种方法来覆盖Symfony2中特定路由的url生成。 在symfony 1.4中我曾经这样做过:
RouteName:
class: sfDoctrineRouteCollection
options:
model: Model
prefix_path: /route/:id/:slug
column: id
route_class: CustomDoctrineRoute
class CustomDoctrineRoute extends sfDoctrineRoute
{
public function generate($params, $context = array(), $absolute = false)
{
//custom logic on route params
return parent::generate($params, $context, $absolute);
}
}
答案 0 :(得分:2)
您可以覆盖核心路由器类路径:
<parameters>
<parameter key="router.class">Company\Bundle\Router\CustomRouter</parameter>
</parameters>
默认路由器类(Symfony \ Bundle \ FrameworkBundle \ Routing \ Router)有默认选项(请参阅方法setOptions()),您可以在应用参数中设置它们并覆盖所需的类,而不是所有路由器:
router.options.generator_class: Company\Bundle\Router\UrlGenerator
我希望这能解决你的问题。