自定义 url 生成器类 [英] Custom url generator class

查看:41
本文介绍了自定义 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 生成器类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆