demix
(Dolbystar)
December 18, 2009, 4:47am
1
Здравствуйте.
Только начинаю разбираться в Yii, поэтому прошу строго несудить за, возможно, глупый вопрос.
А вопрос вот в чем. Существует ли возможность добавить параметры к текущей строке запроса?
То есть если где-то был вызван код
$this->createUrl("/test/show", array(‘a’=>‘11’)), то он сформирует урл вида
http://sitename/?a=/test/show&a=11 и вот мне бы хотелось к этому урлу добавить ещё параметры. Если сделать
$this->createUrl("/test/show", array(‘b’=>‘22’)), то урл становится
http://sitename/?a=/test/show&b=22 , а не http://sitename/?a=/test/show&a=11&b=22 как бы мне хотелось.
Заранее благодарен.
rosko
(A)
December 18, 2009, 5:27am
2
А как же вы хотите, что в урле было два параметра с одинаковым именем?
demix
(Dolbystar)
December 18, 2009, 5:50am
3
нет, параметры с разными именами.
Да… наверное я непонятно написал. В общем мне нужено к текущим параметрам в урле добавить ещё какие-то. То есть в идеале хотелось бы получить массив $AAA GET-параметров текущего урала, а потом сделать
Yii::app()->urlManager->createUrl(’/test/show’, array_merge($AAA, array(‘add’=>‘add_value’)))
Проблема в том, что массив $AAA просто так не получить. А писать парсилку строки Yii::app()->request->queryString … можно
конечно, но по-моему всё проще должно решаться
Rsol
(Slava Rudnev)
December 18, 2009, 6:41am
4
demix:
нет, параметры с разными именами.
Да… наверное я непонятно написал. В общем мне нужено к текущим параметрам в урле добавить ещё какие-то. То есть в идеале хотелось бы получить массив $AAA GET-параметров текущего урала, а потом сделать
Yii::app()->urlManager->createUrl(’/test/show’, array_merge($AAA, array(‘add’=>‘add_value’)))
Проблема в том, что массив $AAA просто так не получить. А писать парсилку строки Yii::app()->request->queryString … можно
конечно, но по-моему всё проще должно решаться
Не совсем понятно что собственно надо, но может методы getParam(), getQuery() , getPost() CHttpRequest помогут.
spk
(Sitepodkluch)
December 18, 2009, 7:05am
5
У CHttpRequest есть метод
getQuery()
я удмаю он может помочь
demix
(Dolbystar)
December 18, 2009, 7:24am
6
getQuery требует передачи имени параметра и возвращает его значение.
Видимо придется делать foreach по GET с исключением элемента с ключом CUrlManager::routeVar. Тогда можно получить массив всех остальный параметров.
Всем спасибо за внимание.
neocasta
(Pk)
December 18, 2009, 8:27am
7
Сам не пробовал
Возможно так получится
Yii::app()->urlManager->createUrl('/test/show', array('a[0]'=>'value0','a[1]'=>'value1'))
Zolter
(Zolter Od)
December 19, 2009, 6:28pm
8
Я специально кук бук переводил, читайте http://dbhelp.ru/by-example-chtml/page/
А по поводу обработки текущих данных и с клейки, есть вариант использовать parse_str над текущим урлом (http://ua2.php.net/manual/en/function.parse-str.php ) ну или обработку Yii::app()->request->queryString вынести в какую-то глоб.функцию
demix
(Dolbystar)
December 19, 2009, 9:18pm
9
Да, спасибо. Я писал уже об этом. Про парсер queryString. Саздавая этот пост, я просто поверить не мог, что разработчики Yii (с его сверхмощной АПИ) не учили, что может понадобится “налету” модифицировать текущий урл. Ну хотя это же платформа, а не комбайн. Нужен парсер - пиши копонент. так что я всем доволен