2014-12-25 43 views
11

我在Yii2一個REST API,並Yii中產生的一切行動Yii2覆蓋通用創建行動中休息ActiveController

瀏覽/更新/創建/刪除

我想改變的createMethode等前衛的的comportement其他方法,所以我不能使用類控制器,我應該使用類ActiveController

但我希望該類做同樣的工作,我需要添加一些操作之前創建和創建後的一些行動。所以我需要覆蓋actionCreate

我該怎麼做?

+0

哪裏是問題嗎? –

+2

我怎麼能做到這一點 – Touhami

回答

30

你可以做以下

class CountryController extends ActiveController 
{ 
    public $modelClass = 'common\models\Country'; 

    public function actions() 
    { 
     $actions = parent::actions(); 
     unset($actions['create']); 
     return $actions; 
    } 

    public function actionCreate(){ 
     // implement here your code 

    } 

} 
+0

實際上是方法的名稱必須是createAction不actionCreate公共職能createAction(){// 這裏實現你的代碼 } – phpniki

+8

@phpniki你錯了 – Shaeldon

-1

或者您也可以通過下面這個步驟做:

public function actions() { 
    $actions = parent::actions(); 
    // will overriding return data on the index action 
    $actions['index']['prepareDataProvider'] = [new app/models/Post(), 'getAllPost']; 
    return $actions; 
}