Всем здравствуйте! Пишу сайт на yii2, для тестирования запросов решил воспользоваться программой Postman, пример отправки запроса на картинке. Данные отправляю методом POST в json формате и получаю ошибку, та что приведена ниже. В ошибке говориться, что передаваемые значения не могут быть null, но я ведь значения передаю. Подскажите пожалуйста, в чем моя ошибка при составлении запроса?
Правила валидации в yii и action
public function rules()
{
return [
[['ticket_id', 'payment_type', 'payment_id', 'amount', 'rrn'], 'required'],
[['ticket_id', 'payment_id'], 'default', 'value' => null],
[['ticket_id', 'payment_id'], 'integer'],
[['payment_type', 'rrn'], 'string'],
[['amount'], 'number'],
[['date'], 'safe'],
];
}
public function actionRent()
{
$model = new Park();
$model->load(Yii::$app->request->post());
if ($model->validate() && $model->save()) {
return [
'ticket_id' => $model['ticket_id'],
'payment_type' => $model['payment_type'],
'amount' => $model['amount'],
'rrn' => $model['rrn'],
'payment_id' => $model['payment_id'],
];
}else{
$errors = $model->getErrorSummary(true);
throw new Exception(implode('; ', $errors), 400);
}
}
Ошибка:
{
"name": "Exception",
"message": "Ticket ID cannot be blank.; Payment Type cannot be blank.; Payment ID cannot be blank.; Amount cannot be blank.; Rrn cannot be blank.",
"code": 400,
"type": "yii\\base\\Exception",
"file": "C:\\OSPanel\\domains\\site.loc\\modules\\api\\controllers\\SiteController.php",
"line": 51,
"stack-trace": [
"#0 [internal function]: app\\modules\\api\\controllers\\SiteController->actionRent()",
"#1 C:\\OSPanel\\domains\\site.loc\\vendor\\yiisoft\\yii2\\base\\InlineAction.php(57): call_user_func_array()",
"#2 C:\\OSPanel\\domains\\site.loc\\vendor\\yiisoft\\yii2\\base\\Controller.php(178): yii\\base\\InlineAction->runWithParams()",
"#3 C:\\OSPanel\\domains\\site.loc\\vendor\\yiisoft\\yii2\\base\\Module.php(552): yii\\base\\Controller->runAction()",
"#4 C:\\OSPanel\\domains\\site.loc\\vendor\\yiisoft\\yii2\\web\\Application.php(103): yii\\base\\Module->runAction()",
"#5 C:\\OSPanel\\domains\\site.loc\\vendor\\yiisoft\\yii2\\base\\Application.php(384): yii\\web\\Application->handleRequest()",
"#6 C:\\OSPanel\\domains\\site.loc\\web\\index.php(13): yii\\base\\Application->run()",
"#7 {main}"
]
}
cURL запрос из Postman выглядит так:
curl -X POST \
http://site.loc/api/rent \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: 185ebe40-05e1-e70e-3f03-32f61ab822a0' \
-d '{
"ticket_id":"12345",
"payment_type":"qr",
"amount":"300.00",
"rrn":"text123",
"payment_id":"54321"
}'