@ArtemKurdin

Нет тегов для постов, как быть?

Приветствую.

Имеются таблицы: post(поля id, title, content и т.д), post_tag (с полями post_id и tag_id для связывания) и tag.

Требуется вывести теги для постов.

Сформировал связь в модели Post с таблицей тегов

public function getTags()
{
    return $this->hasMany(Tags::className(), ['id' => 'tag_id'])->viaTable('post_tag', ['post_id' => 'id']);
}


Для таблицы с категориями тоже самое:

public function getCategories()
{
    return $this->hasOne(PostCategory::className(), ['id' => 'category_id']);
}


После в contoller-e делаю запрос

$posts = Post::find()
    ->select(['title', 'alias', 'category_id' ,'content', 'img_preview', 'date_create'])
    ->where(['status' => 'on'])
    ->with(['categories', 'tags'])
    ->asArray()
    ->limit(10)
    ->orderBy(['date_create' => SORT_DESC])
    ->all();


Категории выводятся, теги нет. Подскажите, что я делаю не так?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
maksim92
@maksim92
Yii Framework
У вас связь идет по id а в select вы его не выбираете. Добавьте в выборку select(['id', .......])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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