Есть форма, большинство полей коорой генерируется на фронтенде. Форма эта содержит в себе генератор опросника. Люди пишут вопрос, выбирают тип вопроса (инпут это или радиокнопки\чекбоксы), если второе\третье, то появляются варианты ответов, которые люди могут добавить сколько угодно много. Сами вопросы тоже могут добавляться сколько угодно много.
Это я делаю с помощью jquery.
Поля формы я генерирую как массив, и обрабатывать их планирую тоже также.
echo $form->field($model, 'answer[]')->label('Answer:');
Но вот столкнулся я с проблемой. Почему-то не проходит валидация. Хотя данные получены верные. Вот результат var_dump($model), его часть, который я вывел на экран по условию, если валидация не прошла:
["question"]=>
array(1) {
[0]=>
string(9) "Question?"
}
["q_type"]=>
array(1) {
[0]=>
string(1) "2"
}
["answer"]=>
array(2) {
[0]=>
string(3) "One"
[1]=>
string(3) "Two"
}
["_errors":"yii\base\Model":private]=>
array(4) {
["captcha"]=>
array(1) {
[0]=>
string(35) "The verification code is incorrect."
}
["question"]=>
array(1) {
[0]=>
string(43) "Question must to have from 0 to 128 symbols"
}
["q_type"]=>
array(1) {
[0]=>
string(26) "Q Type must be an integer."
}
["answer"]=>
array(1) {
[0]=>
string(41) "Answers must to have from 0 to 64 symbols"
}
}
Т.е. видно, что данные получены, и они подходят под правила валидации, однако, возвращена ошибка и не одна.
А вот сама модель, также часть ее, правила валидации этих полей в rules():
['question', 'string', 'length' => [0,128], 'message' => 'Question must to have from 0 to 128 symbols'],
['q_type', 'integer'],
['answer', 'string', 'length' => [0,64], 'message' => 'Answers must to have from 0 to 64 symbols'],
['if_question', 'boolean'],
Почему происходит такая ошибка? При этом это происходит даже для единственного вопроса, который есть изначально, т.е. без генерации дополнительных на фронтенде. Выходит, мой js не виноват. Тогда в чем ошибка у меня и Почему?
P.S. Я менял q_type на string - все равно ошибка.