Подтвердить что ты не робот

Структура Yii: URL-адрес контроллера /Action и параметры

В моем приложении у меня есть ApiController с actionUsers, поэтому в YII путь становится api/users. Теперь, чтобы получить определенную информацию о пользователях, я использую следующий путь api/users/id/10, где 10 - это идентификатор пользователя, а часть id - это в основном параметр GET (api/users?id=10).

Есть ли способ сделать то же самое без id части пути, т.е. я хочу, чтобы мой путь выглядел как api/users/10?

Спасибо!

4b9b3361

Ответ 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;
    }