@HellWalk

Данные уходят, но модель ругается, что их нет — почему?

Сразу оговорюсь, с Yii2 только разбираюсь, и могут быть глупые ошибки.

Делаю форму отправления данных, данные уходят (проверяю через Fiddler):

1f7edfb523715a3bbc88087112a2e468.png

Но выдает ошибку к двум полям: cannot be blank, как будто данных нет (хотя и ajax-валидатор данные проверяет нормально):

В контроллере пишу:
$model = new Test();
$model->save();

echo '<pre>';
var_dump($model->getErrors());
echo '</pre>';
die;

и получаю:
array(2) {
  ["code"]=>
  array(1) {
    [0]=>
    string(23) "Код cannot be blank."
  }
  ["name"]=>
  array(1) {
    [0]=>
    string(33) "Название cannot be blank."
  }
}


Код:
Вид
Контроллер
Модель

Подскажите, в чем ошибка? Спасибо.
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
У Вас срабатывает
$model = new Test();
$model->save(); //тут идет валидация, а Вы указали 2 параметра как обязательные, а они пустые

А там пустые значения. О чем и свидетельствуют ошибки валидации. Сделайте так и ошибок не будет:
$model = new Test();
$model->code = 12;
$model->name = 'Иннокентий';
$model->save();

или
$model = new Test();
$model->load(Yii::$app->request->post());
$model->save();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
Форма у тебя в $_POST['Test'], а в модель ты загружаешь просто $_POST. Нужно так:
$model->load(Yii::$app->request->bodyParams['Test'])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы