На этой странице Symfony я передаю $_GET
параметры в URI следующим образом:
http://www.mysite.com/article?page=4&sort=1
Когда в моем макете есть определенные ссылки на странице, которые должны иметь одинаковую строку запросав них.
В любом случае, используя команду url_for()
Symfony, я создаю URL-адреса примерно так:
$url = url_for('article/index?.http_build_query($_GET));
Таким образом, он создает новый URL-адрес с помощью переменных $ _GET.Для некоторых ссылок я заранее изменяю значения $ _GET, например, $_GET['sort']=0;
перед генерацией URL.Вот почему я использую этот метод.
В любом случае, когда я смотрю на сгенерированный URL, он теперь выглядит так:
http://www.mysite.com/article?page=4&%3Bsort=1
&%3B
- это кодированная форма &
, который является просто символом &
.
Таким образом, проблема в том, что когда я проверяю свои параметры $ _GET в моем контроллере сейчас, больше не передается параметр sort
.Теперь он называется &%3Bsort
... Это вызывает всевозможные проблемы.
Два вопроса:
Как избежать этой проблемы?Могу ли я декодировать значения ключа параметра $_GET
в моем контроллере или что-то в этом роде?
Почему Symfony кодирует символ &
в первую очередь?Это совершенно приемлемый символ URI.Черт, даже закодированное значение, &%3B
содержит &
!!!