@NetyNicka

Как сделать связь hasMany из 2 таблиц в yii2?

Есть таблица
texture (id, url)
а также таблицы user_layer(id, texture_id) и object_layer(id,texture_id)
В модели Texture есть связь:
public function getLayers()
    {
        return $this->hasMany(UserLayer::class, ['texture_id' => 'id']);
    }


Но нужно сделать так, чтобы связь доставала данные с UserLayer и ObjectLayer одновременно.
Как это правильно реализовать?
  • Вопрос задан
  • 294 просмотра
Решения вопроса 2
qonand
@qonand
Software Engineer
насколько я понял Вам нужна жадная загрузка
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1 зачем это делать 1 связью, сделайте 2, а в запросе используйте
Texture::find()->with(['layers,objects'])->all();
что бы минимизировать запросы к бд
Но возможно Вы не правильно вопрос сформулировали и Вам нужно join делать? Тогда будет приблизительно так:
Texture::find()->joinWith(['layers,objects'])->all();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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