Как обрабатывать GET-параметры в правиле urlManager в Yii?
Я передаю строку запроса SearchController::actionDefault
в виде GET
параметр q
:
/search/?q=...
Однако мне нужно определить правило, которое будет автоматически инициализировать этот параметр с некоторым значением или определить другой параметр.
Если я сделаю запрос mysite.com/showall
Мне нужно получить такой же контент, как в /search/?q=*
Вот что я попробовал:
'/showall' => '/search/default/index/?r=*',
2 ответа
Я решил это!
в urlManager можно установить defaultParams, и, наконец, это выглядит в файле конфигурации приложения:
... 'компоненты' => массив ( ... 'urlManager' => array( ... 'rules' => array( .... '/show_all' => array( '/search/default/index', 'defaultParams' => array('show_all'=>'-')), ....), ...), ...),
Принятый ответ также работает, когда вы получаете разные запросы, и вам нужно сопоставить его с тем же GET
пары.
Например я хочу все эти запросы:
user/pics
user/photos
user/pictures
на самом деле генерировать: user/index?content=photos
,
Это может быть одним из способов пойти:
'<controller:user>/(<content:photos>|pics|pictures)' => array('<controller>/index', 'defaultParams'=>array('content'=>'photos')),