如何在Symfony2中隐藏URL中的参数

时间:2016-08-20 22:47:40

标签: symfony url-rewriting

我不希望用户看到我的网址中的参数。

示例:

my_route:
    path:     /***/{id}
    defaults: { _controller: MyBundle:Default:myaction}

路线将如下生成:

*** /产品/ 1

我想看看

*** /产物

1 个答案:

答案 0 :(得分:0)

正如评论中所解释的,请求需要一些东西来识别您要获取的资源。但这与URL重写无关。如果要显示资源的slug而不是id,请执行以下操作:

my_route:
    path:     /products/{slug}
    defaults: { _controller: MyBundle:Default:myaction}

然后,在MyBundle / Controller / DefaultController.php中:

public function myactionAction(Request $request, $slug)
{
    $product = $this->getDoctrine()->getManager()->getRepository('MyBundle:Product')->findOneBy(["slug" => $slug]);
}

如果要创建此产品的链接,请使用

<a href="{{ path('my_route', {'slug': product.slug}) }}">link to the product</a>