REST api无效

时间:2017-08-26 08:33:14

标签: php rest api yii

我是php开发的新手。只是为了练习我在视频教程后创建了一个休息API。我已经遵循了每一步,但仍然无法获得理想的结果。以下是代码

员工模型

class Employee extends \yii\db\ActiveRecord
{
     const SCENARIO_CREATE = 'create';

     /**
      * @inheritdoc
      */
     public static function tableName()
     {
       return 'employee';
     }

     /**
      * @inheritdoc
      */
     public function rules()
     {
        return [
         [['emp_name', 'emp_email', 'emp_sal'], 'required'],
         [['emp_name', 'emp_email', 'emp_sal'], 'string', 'max' => 100],
       ];
     }


     public function scenarios()
     {
         $scenarios = parent::scenarios();
         $scenarios['create'] = ['emp_name','emp_email', 'emp_sal'];
         return $scenarios;       
     }

     /**
      * @inheritdoc
      */
     public function attributeLabels()
     {
         return [
             'id' => 'ID',
             'emp_name' => 'Emp Name',
             'emp_email' => 'Emp Email',
             'emp_sal' => 'Emp Sal',
         ];
     }
}

ID字段上方是auto-increment

员工控制器

public function actionCreateEmployee()
{


   \Yii::$app->response->format= \yii\web\Response::FORMAT_JSON;


    $employee = new Employee();
    $employee-> scenario = Employee::SCENARIO_CREATE;

    $employee->attributes = \Yii::$app->request->post();

    if ($employee->validate())
    {
        return array('status'=> true, 'data' => 'Employee Created Sussessfully');
    }
    else
    {
        return array('status'=> false, 'data'=>$employee->getErrors());
    }
    //return array('status'=> true);
}

现在,当我在Postman中运行API时。我得到了以下结果。

enter image description here

虽然我输入了所有必填字段数据,但它仍然为false status

任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

您需要选择x-www-form-urlencoded

文档说$_POST - 参数只会在application/x-www-form-urlencodedmultipart/form-data上填充,yii可能会使用此参数。

  

当使用application / x-www-form-urlencoded或multipart / form-data作为请求中的HTTP Content-Type时,通过HTTP POST方法传递给当前脚本的关联变量数组。

from php.net