Yii Framework: Контроллер / URL-адрес действия и параметры - PullRequest
18 голосов
/ 04 мая 2010

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

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

Спасибо!

Ответы [ 3 ]

23 голосов
/ 07 мая 2010

Вам нужно будет добавить шаблоны правил в компонент urlManager:

Yii Framework Документация: URL

Ваш конфиг должен выглядеть примерно так:

array(
    ......
    'components'=>array(
        ......
        'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                'api/users/<id>'=>'api/users',
            ),
        ),
    ),
);

Затем вы можете получить значение:

$id = Yii::app()->getRequest()->getQuery('id');
3 голосов
/ 20 декабря 2013

Попробуйте ...... ...... 1001 *

$id = Yii::app()->request->getParam('id');
0 голосов
/ 16 сентября 2015

в дополнение к ответу @ 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...