2014-02-18 4 views
0

Как я могу получить доступ к массиву параметров, переданных контроллеру Action in View? Basicaly перед применением SEO ссылки было правила на мой взгляд (упрощенный):Yii Parsing Urlmanager Link Back To Array

foreach(....){ 
$_GET['filter']=$value; 
$link=$this->createUrl('models/showModels',$_GET); 
echo CHtml::link(Yii::t('main',$value),$link); 
} 

Но после применения переменной urlManager $ _GET стали в пустой, и уверен, что такие правила, установленные остановки работы.

Я просто обнаружил, что с помощью некоторого «магического» метода это делается в модуле CLinkPager, но не может понять, как это сделать.

+0

Элементы массива всегда доступны с помощью ключа. вы сделали в этом свой код. используя $ _GET ['filter'], вы получаете доступ к значению ключевого «фильтра» в вашем массиве get. –

+0

Вы проверили перед использованием $ _GET в createUrl, что он не пуст? –

+0

Как только UrlManager управляет «старыми» URL-адресами, такими как aaa.com/show?brand=BMW, стать новым дружественным SEO: aaa.com/BMW По этой причине $ _GET всегда emty и «проанализированные» переменные хранятся где-то в другом месте , Теперь я пытаюсь выяснить, где он хранится и как я могу получить к нему доступ. –

ответ

1

В Yii вы можете получить из параметров с помощью следующего метода:

Yii::app()->request->getParam('param_name'); 
// for example getParam('filter') 
// OR Yii::app()->request->getQuery('$_GET KEY'); 

Для объединения Params в $ _GET запрос:

CMap::mergeArray($_GET, array('filter' => 'value')) 

Для того, чтобы получить все Params:

Yii::app()->request->getQueryString(); 

Кроме того, Yii имеет мощный способ получить Dump, который я предлагаю вам использовать:

CVarDumper::dump($_GET,34567,true); 
Смежные вопросы