Пользовательский класс генератора URL - PullRequest
0 голосов
/ 13 января 2012

Я ищу способ переопределить генерацию URL для определенного маршрута в Symfony2. В 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);
  }

}

1 Ответ

2 голосов
/ 27 января 2012

Вы можете перезаписать путь к базовому классу Маршрутизатора:

<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

Надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...