Прохождение Получите значения, умочивает мои URL -адреса

StackOverflow https://stackoverflow.com/questions/8302212

  •  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 -кодирование в целом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top