Строка запроса Cakephp 3 закодирована и

Я использую CakePHP 3.5 Url Helper для создания URL-адресов. для вызова с использованием jQuery Ajax. У меня есть следующий 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&amp;param2=5 (with &amp; instead of &)

Из-за этого, когда я использую getQuery('param2') для получения значения параметра строки запроса param2, я получаю null.

Любая помощь, пожалуйста? Разве я не должен создавать URL-адрес с параметрами строки запроса в CakePHP 3.5?


person user765368    schedule 22.03.2018    source источник


Ответы (1)


Вы можете передать второй параметр, чтобы не избежать &:

$this->Url->build([
    "controller" => "tools",
    "action" => "getTools",
    "?" => [
        "param1" => "PARAM1_PLACEHOLDER",
        "param2" => "PARAM2_PLACEHOLDER"
    ]
], ['escape' => false]);
person Chin Leung    schedule 22.03.2018