【问题标题】:Turn URL parameter into SHA1 either in twig or in route or any other place在 twig 或 route 或任何其他地方将 URL 参数转换为 SHA1
【发布时间】:2014-08-02 06:08:47
【问题描述】:

如何在 Twig 中生成以下 URL?只要将 hashId 转换为 SHA1 格式,我会接受任何其他解决方案,不仅是 twig。

注意: 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 %}

结果网址:

...../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}"

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

    只需创建您自己的自定义 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 %}
    

    【讨论】:

    • 啊哈。这是非常好的事情!我以前从未听说过这件事,这似乎是最令人兴奋的选择,因为我会在尝试找到解决方案的同时学到其他东西。谢谢,很有帮助。
    猜你喜欢
    • 2020-01-15
    • 2010-10-05
    • 2014-06-10
    • 1970-01-01
    • 2015-07-29
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多