Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii Rest api url管理器_Api_Url_Yii - Fatal编程技术网

Yii Rest api url管理器

Yii Rest api url管理器,api,url,yii,Api,Url,Yii,我无法找到url管理器背后的逻辑。任何人都可以告诉我在Rest模式中调用的给定url。我的控制器中有太多使用单参数的get方法 这是我的原始url:localhost/project/api/event/getevent/event\u id/1 api是一个模块 事件是控制器 getevent是控制器操作名称 事件id为参数1 我想将其转换为Rest模式localhst/project/api/event/1 //更新的代码 所有产品均与同一型号相关 //Search by Event

我无法找到url管理器背后的逻辑。任何人都可以告诉我在Rest模式中调用的给定url。我的控制器中有太多使用单参数的get方法

这是我的原始url:localhost/project/api/event/getevent/event\u id/1

api是一个模块 事件是控制器 getevent是控制器操作名称 事件id为参数1

我想将其转换为Rest模式localhst/project/api/event/1

//更新的代码

所有产品均与同一型号相关

    //Search by Event id
    public function actionByEventId(){

        $model->byEventId();
    }


    //Retrieve user's events by User id
    public function actionByUserId()
    {  

       $model->userEvents();  
    }

   //Search for event by code
    public function actionByEventcode()
    {      

        $model->byEventCode(); 

    }
添加此规则:

'api/<controller:\w+>/<action:\w+>/<id:\d+>' => 'api/<controller>/by<action>'

现在,如果您调用
localhst/project/api/event/eventid/1
Yii将调用
event
中的
actionByEventId
-控制器,其中
$id
为1

感谢您的回复。我用你的密码试过了。对于单一方法,其工作良好。我有多个动作和一个参数。在这里,我遇到了问题。无论什么来自api,它都作为ID。所以我不能调用多个操作。你能给我指点一下吗?@Kishore请在你的问题中再加一个例子,让我看看你的结构是什么样子的。@Kishore更新了主要帖子。在同一控制器中添加了3个功能和单GET perameter。。如何调用这些API..感谢您的回复。当我调用上面的url时,eventid和userdid将作为操作执行。获取错误,如无法解决此问题..此处没有操作名称。。像那样。但是这两个都是参数…@Kishore:你不能同时运行两个动作,你能添加你想如何调用它们吗?像
localhst/project/api/event/1
localhst/project/api/user/1
?不,我想要像这样的localhst/project/api/event/eventid/1和localhst/project/api/event/userid/1
public function actionByEventId($id) {

}
public function actionByUserId($id) {

}