Ma110y
Новичок
Использую фреймворк yii2. Делаю магазин.
Есть 2 таблицы: каталоги(подкаталоги) и товары.
Нужно сделать, чтобы при попадании в каталог, выводились сразу подкаталоги, потом товары, при этом чтобы работала пагинация. ниже прикреплю скрины таблиц и то что есть сейчас(только вывод подкаталогов с пагинацией.)
Таблицы
контроллер
Вьюшка
Есть 2 таблицы: каталоги(подкаталоги) и товары.
Нужно сделать, чтобы при попадании в каталог, выводились сразу подкаталоги, потом товары, при этом чтобы работала пагинация. ниже прикреплю скрины таблиц и то что есть сейчас(только вывод подкаталогов с пагинацией.)
Таблицы


контроллер
PHP:
public function actionView_catalog($id){
$catalog = ShopForm::getCatalog($id);
$product = ProductForm::getall($id);
$catalog_name = ShopForm::getCatalogName($id);
$catalog_add = new ShopForm();
$query = ShopForm::find() -> where(['id_catalog' => $id]) ;
$countQuery = $query;
$pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 10]);
$pages->pageSizeParam = false;
$catalog = $query->offset($pages->offset)
->limit($pages->limit)
->all();
if($catalog_add->load(Yii::$app->request->post()) && $catalog_add->validate()){
$catalog_add -> id_catalog = $id;
$catalog_add -> save();
Yii::$app->session->setFlash('success','Подкаталог добавлен');
return Yii::$app -> response -> redirect(['shop/view_catalog', 'id' => $id]);
}
return $this -> render('view_catalog', compact('catalog', 'pages','catalog_add','catalog_name','product'));
}
Вьюшка
PHP:
<table class="table">
<?
foreach ($catalog AS $cat){ ?>
<tr>
<td>
<a href="<?=Url::to(['shop/product', 'id' => ''.$cat -> id.''])?>">
<?=$cat->name?>
</a>
</td>
<td>
<a href="<?=Url::to(['shop/update', 'id' => ''.$cat -> id.''])?>">
<i class="glyphicon glyphicon-pencil" style="font-size: 150%"></i>
</a>
<a href="<?=Url::to(['shop/del', 'id' => ''.$cat -> id.''])?>">
<i class="glyphicon glyphicon-remove" style="font-size: 150%"></i>
</a>
</td>
</tr>
<? }
?>
</table>
<?php
echo LinkPager::widget([
'pagination' => $pages,
]);
?>
Последнее редактирование: