无法使用Yii2 RESTful API进行POST

时间:2017-03-27 21:56:04

标签: rest post methods yii2

我使用ActiveController和Basic Authentication在Yii2-Basic中编写了一个RESTful API。我可以使用GET方法,但是当我尝试Post时,使用Postman Chrome Extension,它会抛出一个错误,说“方法不允许。这个网址只能处理以下请求方法:GET,HEAD。”。

我是否需要在我的Web服务器上配置任何内容来测试它,或者需要控制器中的其他功能?我甚至尝试了一个非常简单的表,有两列,并将列设置为安全,如另一个问题所示。

感谢这方面的任何帮助。以下是我目前的代码:

<?php
namespace app\controllers;

use yii\rest\ActiveController;
use yii\filters\auth\HttpBasicAuth;

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

    public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['authenticator'] = [
            'class' => HttpBasicAuth::className(),
        ];
        return $behaviors;
    }
}

我用来测试的网址是:http://localhost/test

3 个答案:

答案 0 :(得分:1)

尝试为您的操作灵活地允许POST方法:

$behaviors['verbs'] = [
                'class' => \yii\filters\VerbFilter::className(),
                'actions' => [
                    'index' => ['post'],
                ],
            ]; 

答案 1 :(得分:1)

原来我使用了错误的终点。使用这个终点对我有用:

http://localhost/test/create

答案 2 :(得分:0)

尝试一下: $ params = \ Yii :: $ app-> request-> post();

供参考: https://forum.yiiframework.com/t/rest-api-model-create-problem/83651