tag.php
public function getArticles()
{
return $this->hasMany(Article::className(), ['id' => 'article_id'])
->viaTable('article_tag', ['tag_id' => 'id']);
}
public function getArticlesCount()
{
return $this->getArticles()->count();
}
public static function getAll()
{
return Tag::find()->all();
}
public static function getArticlesByTags($id)
{
// build a DB query to get all articles
$query = Article::find()->where(['tag_id'=>$id]);
// get the total number of articles (but do not fetch the article data yet)
$count = $query->count();
// create a pagination object with the total count
$pagination = new Pagination(['totalCount' => $count, 'pageSize'=>6]);
// limit the query using the pagination and retrieve the articles
$articles = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
$data['articles'] = $articles;
$data['pagination'] = $pagination;
return $data;
}
выдаёт следующую ошибку:
Я понимаю, что неправильный запрос, т.к. в таблице article нет поля tag_id, это поле есть в таблице article_tag. Как его изменить?
$query = Article::find()->where(['tag_id'=>$id]);