我如何在Twig下面生成URL ?我会接受任何其他的解决方案,不仅仅是树枝,只要哈希被转换成SHA1格式。
注意: brand.id
是来自DB的纯数字,如1, 2, ,3, 10, 23, 69, .....
,需要散列。我不想在数据库中存储散列数据!
生成如下url:
{% for brand in brands %}
<a href="{{ path('product_delete_process', {'hashId':brand.id }) }}">Delete</a>
<br />
{% endfor %}
结果URL:
...../product/delete/process/12df54dg54th897yhjrt65DFesrSDE1123ASa
路线:
product_delete_process:
pattern: /product/delete/process/{hashId}
defaults: { _controller: ProDuctBundle:ProductDelete:process }
methods: [GET]
requirements:
hashId: "[a-zA-Z0-9]{40}"
只需创建您自己的自定义TWIG过滤器,将编码应用于您的URL参数- http://symfony.com/doc/current/cookbook/templating/twig_extension.html
然后在你的模板中使用它:
{% for brand in brands %}
<a href="{{ path('product_delete_process', {'hashId':brand.id|sha1_encode }) }}">Delete</a>
<br />
{% endfor %}