Symfony2路由前缀查询字符串动态

时间:2015-09-15 17:11:22

标签: symfony url routes request twig

我的symfony2项目设置了正常YAML路由到任何正常项目。

使用注释设置路线,最终网址为

http://examplecom/artices/{id}

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

我想在所有路径中添加前缀查询字符串,仅当存在名为preview的查询字符串

所以如果我访问http://example.com/?preview=something - 我希望这个查询字符串附加到所有路由,所以它继续传递每个页面,如果这不存在,那么它将继续正常使用。< / p>

我该如何做到这一点?

1 个答案:

答案 0 :(得分: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