Что конкретно не понятно в документации?
Сюда ходили? 3 и 4 пункт все неплохо объясняют. С парой примеров разобраться и станет совсем ясно.
Вы бы говорили, что конкретно непонятно или как реализовать ту или иную задачу.
'cpanel/<id:вот этот момент интересуент>/' => 'cpanel/index',
<id> - GET-параметр 'id'. После двоеточия ставится регулярное выражение для значения этого параметра.
<id:\d+> - число.
<url:\S+> - строка. Адреса в правилах обрабатываются по порядку, сверху вниз.
Насчет GET'ов.
Можно объявить их как параметра в action'е:
И обращаться к указанным переменным. Но если будет вызван экшн без параметров, получим ошибку. Предположим, мы делаем профили пользователей. Если указывается id (
/user/18), показываем профиль пользователя с
id=18, а если не указан (
/user/), то показываем профиль того, кто запрашивает.
Можно сделать с параметрами функции (как в примере выше), но тогда для
/user/ придется писать отдельный экшн. То есть примерно так:
Код: Выделить всё
public function actionView($id){} // Отдаем юзера $id
public function actionViewmyself($id){} // Отдаем свой профиль
И в путях:
Код: Выделить всё
'user/<id:\d+>/' => 'user/view',
'user' => 'user/viewmyself',
А можно сделать
И тут уже вначале проверять, есть ли GET id, если есть, отдавать страницу нужного пользователя, если нет, показывать страничку того, кто запрашивает.
В таком случае берется $_GET['id']. Но можно использовать и
getQuery из CHttpRequest. Он позволяет задать значение по умолчанию (если параметр не указан).
Код: Выделить всё
public function actionView(){
$id = Yii::app()->request->getQuery('id', Yii::app()->user->id);
// Выводим профиль пользователя $id
}
Не обязуюсь, что примеры рабочие, писал все из головы, но логика должна быть ясна.