@html_profi

Как обратиться к столбцам объединенной таблицы?

Всем привет!

Есть пара таблиц в базе content и category. Для них созданы модели и настроены связи.
В обеих таблицах есть одинаковые поля: id, alias и еще несколько

В модели content
public function getCategory()
{
   return $this->hasOne(Category::class, ['id' => 'category_id']);
}


Теперь хочу получить объединенную таблицу
$content = Content::find()
       ->select([
           Content::tableName() . '.alias',
           Content::tableName() . '.title',
           (другие нужные поля из таблиц content)
           'cat.alias catalias',
           (другие нужные поля из таблиц category)
       ])
       ->where([$tblContent.'.id' => $id])
       ->joinWith('category cat')
       ->one();


Данные из таблицы content доступны по своим именам в объекте $content, но как получить данные из таблицы category?

print_r($content->category); ничего не выдает

Удалось получить данные только создав свойства в классе Content (public $catalias) и после обращаться к ним как $content->catalias

Можно ли как-то еще решить данную задачу?

И как в подобном запросе задать псевдоним таблицы content, чтобы не писать Content::tableName() . '.alias', так ?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
qonand
@qonand
Software Engineer
print_r($content->category); ничего не выдает

в Вашей ситуации это более правильный вариант. А код не выводит ничего скорее всего потому что Вы в запросе присвоили псевдоними полям из таблицы category
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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