@McMike

Как записать связи в БД в Yii2?

Не могу понять как работает запись в базу через модели в Yii.
Есть модель соответствующая некой таблице X1, заполняется объект $X1model и делается $X1model->save()
Как-то идет запись в БД, ок.

Теперь суть вопроса. Есть еще одна таблица X2 в нее должны идти записи связи X с другой таблицей, связь один ко многим. Как это вообще делается в Yii2?
Нужно записать X1, потом взять id этой новой записи, создать $X2model, заполнить ее и сделать $X2model->save()?
Или можно как-то заполнить $X1model дополнительными данными и после $X1model->save() связи тоже появятся?

PS: с yii раньше не работал
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 3
qonand
@qonand
Software Engineer
Для сохранения связанных данных используйте метод link()

Если же хотите грузить все в одну модель используйте это https://github.com/voskobovich/yii2-many-to-many-b...
Ответ написан
Комментировать
@McMike Автор вопроса
Оказалось после save() у модели появляется primaryKey, дальше работаю с другой моделью, используя этот ключ
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Вся Ваша логика по работе со связанными данными должна быть в afterSave методе модели. Там уже есть id.
Если связь 1 использовать link(), если там набор моделей то есть Model::loadMultiple() и их сохранение в цикле, в том же afterSave
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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