Как обрабатывать 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')),
Другие вопросы по тегам