我用树枝过滤器 url_encode 编码了一个 url 参数。
// app.request.query.get("date") output 01/04/2016
href="{{ path('page', {date: app.request.query.get("date")|url_encode}) }}">
哪个在 url 中输出
date=01%252F04%252F2016
所以在请求的页面中带有url参数
{{ app.request.query.get("date") }}
显示 01%2F04%2F2016 但我想要 01/04/2016
我尝试使用原始过滤器,还做了一个树枝扩展:
<?php
namespace SE\AppBundle\Twig;
class htmlEntityDecodeExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('html_entity_decode', array($this, 'htmlEntityDecode'))
);
}
public function htmlEntityDecode($html)
{
$html = html_entity_decode($html);
return $html;
}
public function getName()
{
return 'html_entity_decode_extension';
}
}
但即使这样,它仍然显示 01%2F04%2F2016
我在我的控制器方法中得到了相同的结果:
echo html_entity_decode($request->query->get('date'));
这样做的正确方法是什么?
更新 :
日期来自“文本”类型的输入。不,这是一个带有数字和 / 的简单字符串。