私のアプリケーションでは、ApiController
とactionUsers
があるので、YIIパスはapi/users
になります。特定のユーザー情報を取得するために、私は次のパスapi/users/id/10
を使用します。10はユーザーIDで、パスのid
の部分は基本的にGETパラメーター(api/users?id=10
)です。
パスのid
部分なしで同じことを行う方法はありますか?つまり、パスをapi/users/10
のように見せたいですか?
ありがとうございました!
UrlManagerコンポーネントにルールパターンを入力する必要があります。
設定は次のようになります。
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;
}