Прохождение Получите значения, умочивает мои URL -адреса
-
25-10-2019 - |
Вопрос
Просто обновил с 1,3 до 2,0,3, и я пытаюсь перенести все изменения. Я замечаю, что следующая строка
echo $this->Html->link('Quote', array('controller'=>'crm_quotes', 'action'=>'index', $lead['id'].'/'.$crmContact['CrmContact']['id']), null);
строит URL "/crm_quotes/index/15/21"
. Анкет Когда я нажимаю по ссылке, которую я взял на URL:
"/crm_quotes/index/15%2F212
Так что он заменяет персонажей HTML #
Но в конечном итоге это нарушает ссылку.
Когда я вручную редактировать URL на правильный:
"/crm_quotes/index/15/21"
Страница загружается.
Может кто -нибудь просветить меня? Должен ли я использовать url
функция, а не ссылка?
У меня есть много страниц, которые нуждаются в нескольких параметрах, передаваемых в URL. Я использовал названные параметры, но после прочтения некоторых комментариев Марка Стори я решил остановить названные параметры, когда он намекал на их возможное удаление из будущих версий.
Решение
Передайте дополнительные параметры правильным (пирогом). Торт кодирует любой /
в URL, что он не был определен; Я еще не узнал, как это предотвратить.
echo $this->Html->link('Quote', array('controller'=>'crm_quotes',
'action'=>'index',
$lead['id'],
$crmContact['CrmContact']['id']), null);
Другие советы
В качестве ответа на вашу проблему: просто выберите объединенные «/» и передайте идентификаторы в виде отдельных значений в этом массиве. Он должен разместить перерывы вперед автоматически.
echo $this->Html->link('Quote', array(
'controller'=>'crm_quotes',
'action'=>'index',
$lead['id'],
$crmContact['CrmContact']['id']
));
На тему кодирования: я думаю, что проблема здесь в том, что она не знает, что вы намереваетесь, чтобы / чтобы рассматриваться как действительная часть URL -адреса вместо просто немного текста. Поведение по умолчанию состоит в том, чтобы кодировать резервные символы, чтобы избежать этой проблемы, поэтому оно кодируется URL.
Вот Подобный вопрос, и ответ о URL -кодирование в целом.