cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!

Почему Join не возвращает содержимое второй таблицы?

Кто в курсе почему при join не важно какой inner или left он возвращает результат только из первой таблицы с которой началась цепочка:
$result = TableOne::find()
            ->select('table_one.user_id, table_two.*')
            ->innerJoin('table_two', 'table_one.post_id = table_two.post_id')
            ->where(['user_id' => Yii::$app->user->identity->id])->all();
        dd($result );

Если сделать
createCommand()->getRawSql();
И выполнить этот запрос напряму в phpMyAdmin то в результате будут обе таблицы. А Yii возвращает только поля из TableOne.

И ему по барабану что я указал
select('table_one.user_id, table_two.*')
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
artem90
@artem90
TeamLead, Developer
Вы работаете с ActiveRecord. При выборке из базы Yii достает всё, что вы указали в select.
Однако дальше при обработке данных от бд и формировании из них моделей Yii собирает в результирующий массив только список моделей по которым был выполнен запрос.

Для использования данных из второй таблицы настройте связи модели и используйте with().

Данные из второй таблицы будут доступны по связе $model->myRelation
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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