Когда тестирую через postman свое api, все работает, данные добавляются в таблицу. Но когда пытаюсь провести тестирование с php файла, появляется ошибка {"status":false,"date":{"email":["Email cannot be blank."],"pass":["Pass cannot be blank."]}}, т.е. поля передаются пустыми/не передаются вообще.
Перед отправкой убеждаюсь, что json сформирован корректно, но return \Yii::$app->request->post(); возвращает [] - пустой массив?
Не могу понять, что же я делаю не так при отправке данных email и pass. Может кто с этим уже сталкивался и нашел решение?
Код файла php, с которого отправляю данные
<?php
$fields['email'] = 'Aria';
$fields['pass'] = '000';
$json_str = json_encode($fields,JSON_UNESCAPED_UNICODE);
echo $json_str."\n"; //{"email":"Aria","pass":"000"}
$url = 'http://192.168.88.242:8080/api/users/create-users';
$response = file_get_contents($url, false, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: Application/JSON',
'content' => $json_str
)
)));
Echo $response."\n";
$response = json_decode($response, true);
.......
die('END');
?>
Код моего actionCreateUsers
public function actionCreateUsers()
{
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$users = new Users();
$users->scenario=Users::SCENARIO_CREATE;
$users->attributes= \Yii::$app->request->post();
return \Yii::$app->request->post(); //Чтобы увидеть что получает в качестве данных, через postman это json, а от php - файла [] =(
if($users->validate()){
$users->save();
return array('status' => true,'date'=>'User created successfuly'); //выдает в тестах через postman
} else {
return array('status'=> false,'date'=> $users->getErrors()); //выдает в тестах через php-файл
}
}