2017-08-26 4 views
1

Je suis nouveau au développement php. Juste pour pratiquer, je crée une API de repos à la suite d'un tutoriel vidéo. J'ai suivi chaque étape mais toujours incapable d'obtenir le résultat souhaité. Ci-dessous le codeREST api ne fonctionne pas

Model employé

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', 
     ]; 
    } 
} 

Au-dessus du champ ID est auto-increment

contrôleur employé

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); 
} 

Maintenant, quand je lance l'API dans Postman. J'ai eu le résultat suivant.

enter image description here

Bien que je suis entré toutes les données champs obligatoires encore il me donne false status

Toute aide serait très appréciée

Répondre

1

Vous devez sélectionner x-www-form-urlencoded

La documentation indique que le $_POST -paramètre ne se remplit que sur application/x-www-form-urlencoded ou multipart/form-data et yii l'utilise probablement.

Un tableau associatif des variables passées au script courant via la méthode HTTP POST lors de l'utilisation application/x-www-form-urlencoded ou multipart/form-données que le HTTP Content-Type dans la demande.

from php.net