2015-09-15 5 views
2

Мой проект symfony2 устанавливается с обычными маршрутами YAML в любой обычный проект.Symfony2 Префикс маршрута querystring dynamic

Маршруты установка с аннотацией и конечными адресами являются

http://examplecom/artices/{id} 

http://example.com/comments/{id} 

Я хочу, чтобы добавить префикс строки запроса на все пути, только если есть QueryString называется preview

Так что если я достигаю http://example.com/?preview=something - Я хочу этот запрос будет добавлен ко всем маршрутам, поэтому он будет продолжать проходить на каждой странице, и если этого не будет, то он будет по-прежнему использоваться как обычно.

Как это сделать?

ответ

1

service.yml

parameters: 
    router.options.generator_base_class: "Acme\\DemoBundle\\Routing\\Generator\\UrlGenerator" 

UrlGenerator.php

<?php 

namespace Acme\DemoBundle\Routing\Generator; 
use Symfony\Component\Routing\Generator\UrlGenerator as BaseUrlGenerator; 

class UrlGenerator extends BaseUrlGenerator 
{ 
    protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens) 
    { 
     return parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens).'?preview=something'; 
    } 
} 

ссылка: http://h4cc.tumblr.com/post/56874277802/generate-external-urls-from-a-symfony2-route