нужно показать все статьи по тегу.
не знаю как взять данные из массива. в коде ниже есть запросы, как к объектам.
с actionCategory все понятно, а с actionTag нет(
DB:
DefaultController.php:
Код: Выделить всё
//
public function actionCategory($id) {
$query = Article::find()->where(['category_id' => $id, 'status' => '1']);
$count = $query->count();
$pagination = new Pagination(['totalCount' => $count, 'pageSize' => $this->module->params['articlesOnPage']]);
$articles = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('category', [
'articles' => $articles,
'pagination' => $pagination,
]);
}
public function actionTag($name) {
$tag = Tag::find()->where(['name' => $name])->one();
$query = $tag->articles;
$count = count($query);
$pagination = new Pagination(['totalCount' => $count, 'pageSize' => $this->module->params['articlesOnPage']]);
$articles = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('tag', [
'articles' => $articles,
'pagination' => $pagination,
]);
}
Код: Выделить всё
public function getArticles()
{
return $this->hasMany(Article::className(), ['id' => 'article_id'])
->viaTable('{{%article_tag}}', ['tag_id' => 'id']);
}