Не записываются данные в модель

176
02 марта 2018, 18:10

Пост, который приходит:

[
'UserInfo' => [
    'name' => 'ewewe'
    'surname' => 'ewewew'
    'dateBirth' => '1229-12-12'
    'sex' => 'man'
    ]
]

Модель, данные должны записываться в [yii\db\BaseActiveRecord:_attributes]:

app\models\db\UserInfo#1
(
[yii\db\BaseActiveRecord:_attributes] => []
[yii\db\BaseActiveRecord:_oldAttributes] => null
[yii\db\BaseActiveRecord:_related] => []
[yii\db\BaseActiveRecord:_relationsDependencies] => []
[yii\base\Model:_errors] => null
[yii\base\Model:_validators] => ArrayObject#2
(

Тут возвращает true:

$model->load(Yii::$app->request->post(), '');

Знаю, что проблема с неймами, передаю вот таким скриптом:

$scope.userRegSecondForm = function(){ 
        var secForm = {
            name: $('input[name="name"]').val(),
            surname: $('input[name="surname"]').val(),
            dateBirth: $('input[name="dateBirth"]').val(),
            sex: $('select[name="sex"] option[selected]').val(),
            };
        var userSecondFormData = {
            UserInfo : secForm
        };
        console.log(userSecondFormData);
        return userSecondFormData;
    }
Answer 1

Вы передаете в модель данные, с явным указанием, что нужные данные содержатся в корне _POST, а не во вложенном массиве

    $model->load(Yii::$app->request->post(), ''); 
// 2ой аргумент load пустая строка, что говорит модели "Не ищи данные в массиве "UserInfo"

Однако Вы все равно отправляете данные в массиве UserInfo, разумеется модель его и не видит.

Чтобы работал конкретно Ваш код - либо уберите 2ой аргумент в load

$model->load(Yii::$app->request->post()); 

Либо не добавляйте данные при отправке в массив UserInfo

$scope.userRegSecondForm = function(){ 
        var secForm = {
            name: $('input[name="name"]').val(),
            surname: $('input[name="surname"]').val(),
            dateBirth: $('input[name="dateBirth"]').val(),
            sex: $('select[name="sex"] option[selected]').val(),
            };
        console.log(secForm);
        return secForm;
    }
READ ALSO
Как создать “сырой” UDP сокет?

Как создать “сырой” UDP сокет?

Пытаюсь создать сырой UDP сокет, но выдает ошибку 10013

154
Получуние курса доллара через json + php

Получуние курса доллара через json + php

Здравствуйте, имею такой код:

136
Yii2 свой шаблон ошибки

Yii2 свой шаблон ошибки

В общем есть тема basic, шаблонизатор Smarty, в ней у меня страница ошибки - errortpl, в контроллере я прописал

159
Значение переменной в урл

Значение переменной в урл

Работаю в wordpressУ меня есть переменная с именем города

153