Код: Выделить всё
<a href="<?= \Yii::$app->urlManager->createAbsoluteUrl(['articles/index/', 'category_slug' => 'transport'])">Транспорт</a>
Код: Выделить всё
public function actionIndex($category_slug)
{
$article_query = new ArticleQuery();
$articles = $article_query->showBasedOnCategory($category_slug);
$selected_category = $article_query->showCategoryName($category_slug);
if($articles){
return $this->render('index', ['articles' => $articles,
'pages' => $article_query->pages,
'selected_category' => $selected_category
]);
} else {
return $this->goHome();
}
}
Код: Выделить всё
public function showBasedOnCategory($category_slug){
$query = new Query;
$query->select(['article.id', 'article_title', 'article_content', 'article.slug AS article_slug', 'path', 'featured_img', 'created_at'])
->from('article')
->where(['article_category.slug' => $category_slug, 'article_status' => self::STATUS_PUBLISHED])
->leftJoin('category_article_rel', 'article.id = category_article_rel.article_id')
->leftJoin('article_category', 'category_article_rel.category_id = article_category.id')
->orderBy(['created_at' => SORT_DESC]);
$pages = new \yii\data\Pagination(['totalCount' => $query->count(), 'pageSize'=>10]);
$articles = $query->offset($pages->offset)
->limit($pages->limit)
->all();
$this->pages = $pages;
return $articles;
}
Код: Выделить всё
<a href="<?= \Yii::$app->urlManager->createAbsoluteUrl(['articles/index/', 'category_slug' => 'transport/cars])">Легковые авто</a>
2) как можно вывести материалы которые относяться к категории cars?
Если что, вот мои таблицы в базе данных:
article
- id
- article_title
- slug
- article_content
- path
- featured_img
category
- id
-name
-slug
- parent_id
category_article_rel - свзять между категориями и статьями
- article_id
- category_id