本文介绍了自定义 url 生成器类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找一种方法来覆盖 Symfony2 中特定路由的 url 生成.在 symfony 1.4 中,我曾经这样做过:
I am looking for a way to override the generation of the url for a specific route in Symfony2.In symfony 1.4 I used to do it like this:
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);
}
}
推荐答案
可以覆盖核心Router类路径:
You can overwrite core Router class path:
<parameters>
<parameter key="router.class">Company\Bundle\Router\CustomRouter</parameter>
</parameters>
默认路由器类 (Symfony\Bundle\FrameworkBundle\Routing\Router) 具有默认选项(请参阅方法 setOptions()),您可以在应用程序参数中设置它们并覆盖所需的类,而不是所有路由器:
Default Router class (Symfony\Bundle\FrameworkBundle\Routing\Router) have default options (see method setOptions()), you can set them in your app parameters and overwrite needed class, instead all Router:
router.options.generator_class: Company\Bundle\Router\UrlGenerator
希望这能解决您的问题.
I hope this will solve your problem.
这篇关于自定义 url 生成器类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!