我的symfony2项目设置了正常YAML路由到任何正常项目。
使用注释设置路线,最终网址为
http://examplecom/artices/{id}
http://example.com/comments/{id}
我想在所有路径中添加前缀查询字符串,仅当存在名为preview
的查询字符串
所以如果我访问http://example.com/?preview=something
- 我希望这个查询字符串附加到所有路由,所以它继续传递每个页面,如果这不存在,那么它将继续正常使用。< / p>
我该如何做到这一点?
答案 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