将URL参数转换为SHA1,无论是在树枝中还是在路径中或任何其他位置

时间:2014-08-01 21:32:08

标签: php symfony twig

如何在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}"

1 个答案:

答案 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 %}