demix  
          
              
                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  
          
              
                December 18, 2009,  5:27am
               
              2 
           
         
        
          А как же вы хотите, что в урле было два параметра с одинаковым именем?
         
        
           
         
            
       
      
        
          
          
            demix  
          
              
                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  
          
              
                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  
          
              
                December 18, 2009,  7:05am
               
              5 
           
         
        
          
У CHttpRequest есть метод
getQuery()
я удмаю он может помочь
         
        
           
         
            
       
      
        
          
          
            demix  
          
              
                December 18, 2009,  7:24am
               
              6 
           
         
        
          
getQuery требует передачи имени параметра и возвращает его значение.
Видимо придется делать foreach по GET с исключением элемента с ключом CUrlManager::routeVar. Тогда можно получить массив всех остальный параметров.
Всем спасибо за внимание.
         
        
           
         
            
       
      
        
          
          
            neocasta  
          
              
                December 18, 2009,  8:27am
               
              7 
           
         
        
          Сам не пробовал
Возможно так получится
Yii::app()->urlManager->createUrl('/test/show', array('a[0]'=>'value0','a[1]'=>'value1'))
 
        
           
         
            
       
      
        
          
          
            Zolter  
          
              
                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  
          
              
                December 19, 2009,  9:18pm
               
              9 
           
         
        
          
Да, спасибо. Я писал уже об этом. Про парсер queryString. Саздавая этот пост, я просто поверить не мог, что разработчики Yii (с его сверхмощной АПИ) не учили, что может понадобится “налету” модифицировать текущий урл. Ну хотя это же платформа, а не комбайн. Нужен парсер - пиши копонент. так что я всем доволен