Как в Yii2, при отсутсвие связанной модели, создать пустую на ее место?

Есть модель. В ней есть связь HAS_ONE.
Нужно редактировать все поля модели и ее связей в одной форме.
Если данные есть, то все ок. Если же мы создаем новый объект, то и связанных данных у нее нет. При этом нельзя написать $model->children = new Childrens(); как я это успешно делал в первом yii, так как переменная children рид-онли.
Писать кучу оберток типа создания левой переменной, записывания данных из формы в нее, кучи условий и тд и тп не очень хочется.
Есть адекватное решение или придется все-таки городить кучу лишнего кода?
  • Вопрос задан
  • 2548 просмотров
Решения вопроса 1
IvanCher
@IvanCher
Мысли шире
В yii2 связь не сможет произойти, если обе модели не имеют первичного ключа. Поэтому только через создание свойства основной модели.
UPDATE
Можно у основной модели написать сеттер setChildren и через него записывать в приватное свойство $childrenRelation основной модели. В afterSave просто через метод link() связать модели. Тогда в контроллере для Вас всё должно выглядеть также просто, как и в yii1, просто $model->children = new Childrens();.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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