CakePHP v2.0 и именованные параметры

#cakephp #cakephp-2.0

#cakephp #cakephp-2.0

Вопрос:

Я переношу сайт на cakephp v2.0. В какой-то момент я использую ссылку с греческими символами:

 contents/library/category:κατηγορία
  

Если я использую pr() или debug() $this->request->named[‘category’], вывод отображается с Έντυπα Δ.

И поскольку он передается в запрос поиска, он не возвращает никаких данных. В версии v1.3 символы не экранировались. Что-то изменилось? Я даже пробовал debug($var,false); но происходит то же самое.

Ответ №1:

Когда вы создаете свой URL-адрес с помощью HtmlHelper или принимаете их из FormHelper, теперь они автоматически экранируются, чтобы предотвратить вредоносное манипулирование URL-адресом; нелатинские символы экранируются, как и все нелатинские буквенно-цифровые символы. Чтобы избежать этого, установите «escape» false в массив параметров, как в приведенном ниже примере из книги CakePHP 2.0:

 echo $this->Html->link(
    $this->Html->image("recipes/6.jpg", array("alt" => "Brownies")),
    "recipes/view/6",
    array('escape' => false)
);