ajky
@ajky
Full-stack developer

Как добавлять поля-массивы в базу на Yii2?

Собственно, при отправке ActiveForm через PJAX полей-массивов с именами вида "Model[name][0]" в модель не приходит значение, т.е. переменная даже не существует. При отправке жалуется, что переменная должна быть строкой. Если отрубить в моделе проверку на тип(строку), то на POST событие переменная не существует.
Как можно побороть эту напасть?
  • Вопрос задан
  • 499 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1. В валидации убрать проверку на строку и поставить safe, или написать валидатор свой открывающий массив.
2. Если сохранять надо весь массив в одну ячейку БД, тогда можно в beforeValidete переводить массив в json, тогда проверка на строку должна работать.
3. Вероятно у Вас неверная структура и данные которые в массиве, должны храниться в отдельной таблице со связью hasMany, тогда валидироваться этот массив не должен в этой моделе, он будет валидироваться в другой, а так уже будут строки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы