CakePHP中的转义URL帮助程序

CakePHP中的转义URL帮助程序,php,cakephp-3.0,Php,Cakephp 3.0,我需要发送一封带有链接的文本电子邮件,供用户单击。这是一封用户验证电子邮件。我遇到的问题是URL帮助程序一直在转义字符。我觉得我已经尝试了以下每一种可能的组合,但没有任何效果 echo $this->Url->build([ "controller" => "Users", "action" => "verify", "?" => ['email' => $email, 'hash' => $hash] ],[

我需要发送一封带有链接的文本电子邮件,供用户单击。这是一封用户验证电子邮件。我遇到的问题是URL帮助程序一直在转义字符。我觉得我已经尝试了以下每一种可能的组合,但没有任何效果

echo $this->Url->build([
    "controller" => "Users",
    "action" => "verify", 
    "?" => ['email' => $email, 'hash' => $hash]  
    ],[
    "escape" => false,
    "fullBase" => true
    ]);
这就导致了“@”和“&”字符的逃逸

另一个问题是cake不能访问hash变量,但可以访问电子邮件

echo $this->request->query('hash') //doesn't print anything
echo $this->request->query('email') //prints email with the @ symbol

感谢格雷格·施密特指出版本不一致

供参考;您只能使用CakePHP版本3.3.5及更高版本的转义(从11月16日起)


我使用了htmlspecialchars\u decode($this->Url->build())来解决这个问题

多亏格雷格·施密特指出了版本不一致的问题

供参考;您只能使用CakePHP版本3.3.5及更高版本的转义(从11月16日起)


我使用htmlspecialchars\u decode($this->Url->build())来解决这个问题

具体来说,您使用的是什么版本的蛋糕?文档表明,作为第二个参数传递数组只是在3.3.5中添加的。@GregSchmidt我使用的是3.2.13。这是否意味着在3.3.5之前,您不能在构建函数中转义特殊字符?如果是这样的话,你知道另一种方法吗?具体来说,你用的是什么版本的蛋糕?文档表明,作为第二个参数传递数组只是在3.3.5中添加的。@GregSchmidt我使用的是3.2.13。这是否意味着在3.3.5之前,您不能在构建函数中转义特殊字符?如果是这样的话,你知道另一种方法吗?