如何在Twig中生成以下网址?只要hashId变成SHA1格式,我就会接受任何其他解决方案,而不仅仅是twig。
注意: brand.id
来自数据库,如1, 2, ,3, 10, 23, 69, .....
这样的普通数字,需要进行哈希处理。我不想在数据库中存储散列数据!
生成如下网址:
{% for brand in brands %}
<a href="{{ path('product_delete_process', {'hashId':brand.id }) }}">Delete</a>
<br />
{% endfor %}
OUTCOME网址:
...../product/delete/process/12df54dg54th897yhjrt65DFesrSDE1123ASa
ROUTE:
product_delete_process:
pattern: /product/delete/process/{hashId}
defaults: { _controller: ProDuctBundle:ProductDelete:process }
methods: [GET]
requirements:
hashId: "[a-zA-Z0-9]{40}"
答案 0 :(得分:3)
只需创建自己的自定义TWIG过滤器,即可将编码应用于您的网址参数 - 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 %}