@Monitorkin

(Yii2) Как вывести данные из трёх связанных таблиц?

Есть 3 таблицы:
Service (сервисы юзера)
User (данные юзера)
UserOrg (организация, в которой работает юзер)
и связанные с ними модели
img.png
Как правильно прописать связи в моделях и вывести в одном запросе поля из трёх таблиц: Service:dogovor, User:name, UserOrg:name
  • Вопрос задан
  • 2487 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
В Service
public function getUser()
    {
        return $this->hasOne(User::className(),['id'=>'user_id']);
    }

В User:
public function getUserOrg()
    {
        return $this->hasOne(UserOrg::className(),['org'=>'id']);
    }

Вывод:
$service = Service::findOne($id);
// можно так, меньше запросов к бд: 
// $service = Service::find()->with(['User','UserOrg'])->where(['id'=>$id])->one();
echo $service->user->username;
echo $servise->user->userOrg->name;


Все есть тут: www.yiiframework.com/doc-2.0/guide-db-active-recor...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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