Cakephp 3 查询字符串构建编码 &
Cakephp 3 query string build encoded &
我正在使用 CakePHP 3.5 Url Helper 生成一些要使用 jQuery Ajax 调用的 Urls。我有以下 Ajax:
$(".container").on("change", "#select_box", function(){
url = '<?= $this->Url->build(["controller" => "tools", "action" => "getTools", "?" => ["param1" => "PARAM1_PLACEHOLDER", "param2" => "PARAM2_PLACEHOLDER"]]); ?>';
url = url.replace("PARAM1_PLACEHOLDER", $(this).val()).replace("PARAM2_PLACEHOLDER", 5);
$("#tools").load(url);
});
出于某种原因,我的 url 会变成这样
/tools/get-tools/param1=1&param2=5 (with & instead of &)
因此,当我使用 getQuery('param2') 获取查询字符串参数 param2 的值时,我得到 null。
有什么帮助吗?这不是我应该在 CakePHP 3.5 中使用查询字符串参数构建 url 的方式吗?
可以传第二个参数不转义&
:
$this->Url->build([
"controller" => "tools",
"action" => "getTools",
"?" => [
"param1" => "PARAM1_PLACEHOLDER",
"param2" => "PARAM2_PLACEHOLDER"
]
], ['escape' => false]);
我正在使用 CakePHP 3.5 Url Helper 生成一些要使用 jQuery Ajax 调用的 Urls。我有以下 Ajax:
$(".container").on("change", "#select_box", function(){
url = '<?= $this->Url->build(["controller" => "tools", "action" => "getTools", "?" => ["param1" => "PARAM1_PLACEHOLDER", "param2" => "PARAM2_PLACEHOLDER"]]); ?>';
url = url.replace("PARAM1_PLACEHOLDER", $(this).val()).replace("PARAM2_PLACEHOLDER", 5);
$("#tools").load(url);
});
出于某种原因,我的 url 会变成这样
/tools/get-tools/param1=1&param2=5 (with & instead of &)
因此,当我使用 getQuery('param2') 获取查询字符串参数 param2 的值时,我得到 null。
有什么帮助吗?这不是我应该在 CakePHP 3.5 中使用查询字符串参数构建 url 的方式吗?
可以传第二个参数不转义&
:
$this->Url->build([
"controller" => "tools",
"action" => "getTools",
"?" => [
"param1" => "PARAM1_PLACEHOLDER",
"param2" => "PARAM2_PLACEHOLDER"
]
], ['escape' => false]);