我不希望用户看到我的网址中的参数。
示例:
my_route:
path: /***/{id}
defaults: { _controller: MyBundle:Default:myaction}
路线将如下生成:
*** /产品/ 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>