В моем приложении у меня есть ApiController
с actionUsers
, поэтому в YII путь становится api/users
. Теперь, чтобы получить определенную информацию о пользователях, я использую следующий путь api/users/id/10
где 10 – это идентификатор пользователя, а id
часть пути – это в основном параметр GET ( api/users?id=10
).
Есть ли способ сделать то же самое без id
части пути, т. Е. Я хочу, чтобы мой путь выглядел как api/users/10
?
Спасибо!
Вам нужно будет поместить шаблоны правил в компонент urlManager:
Документация Yii: url
Ваша конфигурация должна выглядеть примерно так:
array( ...... 'components'=>array( ...... 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( 'api/users/<id>'=>'api/users', ), ), ), );
Затем вы можете получить значение:
$id = Yii::app()->getRequest()->getQuery('id');
Попробуй это……
$id = Yii::app()->request->getParam('id');
в дополнение к ответу @ 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; }