Структура Yii: URL-адрес контроллера /Action и параметры
В моем приложении у меня есть ApiController
с actionUsers
, поэтому в YII путь становится api/users
. Теперь, чтобы получить определенную информацию о пользователях, я использую следующий путь api/users/id/10
, где 10 - это идентификатор пользователя, а часть id
- это в основном параметр GET (api/users?id=10
).
Есть ли способ сделать то же самое без id
части пути, т.е. я хочу, чтобы мой путь выглядел как api/users/10
?
Спасибо!
Ответы
Ответ 1
Вам нужно будет поместить шаблоны правил в компонент urlManager:
Документация по Yii Framework: URL
Ваша конфигурация должна выглядеть примерно так:
array(
......
'components'=>array(
......
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'api/users/<id>'=>'api/users',
),
),
),
);
Затем вы можете получить значение:
$id = Yii::app()->getRequest()->getQuery('id');
Ответ 2
Попробуйте это......
$id = Yii::app()->request->getParam('id');
Ответ 3
в дополнение к ответу @shiki вы также можете это сделать
array(
......
'components'=>array(
......
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'api/users/<id>'=>'api/users',
),
),
),
);
и в действии
public function actionUsers($id=null) // argument variable should same as in urlmanager
{
echo $id;
}