2016-11-07 2 views
0

я попытался отправить из интерфейса в yii2 с помощью почтальона, но я получаю этуYii2 пост метод не позволил

{ 
    "name": "Method Not Allowed", 
    "message": "Method Not Allowed. This url can only handle the following request methods: GET, HEAD.", 
    "code": 0, 
    "status": 405, 
    "type": "yii\\web\\MethodNotAllowedHttpException" 
} 

я не знаю, как отправить из интерфейса.

это мой передний конец кода контроллер

class TestController extends ActiveController { 
    public $modelClass = 'common\models\Test'; 

    public function behaviors(){ 
     $behaviors = parent::behaviors(); 
     $behaviors['corsFilter'] = [ 
      'class' => \yii\filters\Cors::className(), 
      'cors' => [ 
       'Origin' => ['*'], 
       'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page', 'X-Pagination-Page-Count'], 
      ], 
     ]; 
     return $behaviors; 
    } 

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

    public function actionIndex(){ 
     $activeData = new ActiveDataProvider([ 
      'query' => Test::find()->orderBy('test_id DESC'), 
      'pagination' => [ 
       'defaultPageSize' => 5, 
      ] 
     ]); 
     return $activeData; 
    } 

} 

я довольно новыми для программирования и нужно очень простое объяснение и пример того, как разрешить метод столба.

http://localhost/advanced/frontend/web/index.php?r=test

ответ

0

Ну, кажется, что вы унаследовали ваш контроллер от \yii\rest\ActiveController. Он имеет метод verbs(), который вы должны переопределить в своем контроллере, чтобы обеспечить его надлежащими методами. Вот verbs() из оригинального класса:

protected function verbs() 
{ 
    return [ 
     'index' => ['GET', 'HEAD'], 
     'view' => ['GET', 'HEAD'], 
     'create' => ['POST'], 
     'update' => ['PUT', 'PATCH'], 
     'delete' => ['DELETE'], 
    ]; 
} 

Попробуйте написать что-то подобное в вашем TestController:

protected function verbs() { 
    $verbs = parent::verbs(); 
    $verbs['index'] => ['POST']; //methods you need in action 
    //or 
    $verbs['index'][] => 'POST'; //just add the 'POST' to "GET" and "HEAD" 
    return $verbs; 
} 
Смежные вопросы