2014-10-27 83 views
0

我無法找到url管理器的邏輯。任何機構都可以告訴我關於在Rest模式下給定的URL調用。我的控制器中有很多隻有單參數的get方法。Yii Rest api url manager

這是我的原始地址:本地主機/項目/ API /事件/ getevent/EVENT_ID/1

的API模塊 事件控制器 getevent是控制器動作的名稱 事項標識爲參數1

我要將此轉換爲REST模式localhst /項目/ API /事件/ 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(); 

    } 
+0

你可以作爲添加如何打電話給他們?比如'localhst/project/api/event/1'和'localhst/project/api/user/1'? – Dinistro 2014-10-29 10:31:29

+0

不,我想要這個localhst/project/api/event/eventid/1和localhst/project/api/event/userid/1 – Kishore 2014-10-29 10:52:26

+0

編輯答案 – Dinistro 2014-10-29 11:10:26

回答

1

添加這條規則:

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

並添加$id你的行動:

public function actionByEventId($id) { 

} 
public function actionByUserId($id) { 

} 

現在,如果你調用localhst/project/api/event/eventid/1的Yii將調用actionByEventIdevent -Controller與$id作爲1

+0

感謝您的回覆。我試着用你的代碼。它的單一方法工作得很好。我有一個參數的多個動作。在這裏,我遇到了問題。來自api的,它需要作爲ID。所以我無法調用多個操作。你能指導我嗎? – Kishore 2014-10-29 10:03:09

+0

@Kishore請爲您的問題添加第二個示例,以便我可以看到您的結構如何看起來像 – Dinistro 2014-10-29 10:04:42

+1

嗨,更新了主帖子。在同一個控制器中添加了3個單個GET參數的功能..我如何將這些apis稱爲 – Kishore 2014-10-29 10:26:39