
Сам виджет GridView уже описывал тут.
Есть сущность "семинары" и сущность "категории". Они связаны через поле «seminar.category_id», поэтому можно использовать seminar->category->name для получения названия категории, к которой относится семинар.
Нужно генерировать GridView для каждой категории, который будет содержать относящиеся к ней семинары.
Используем ActiveDataProviderSeminarController/actionIndex:
$categories = Category::find()->where(['Status'=>Category::STATUS_ACTIVE])->All(); $dataProviders = []; foreach ($categories as $category) { $dataProviders[] = new ActiveDataProvider([ 'query' => $category->getSeminars(), ]); } return $this->render('index', compact('dataProviders'));
view/seminar/index.php:
<?php foreach ($dataProviders as $dataProvider) { ?> <?= $this->render('_categoryRow', [ 'dataProvider' => $dataProvider, ]); ?> <?php } ?>
/view/seminar/_categoryRow.php:
<?= GridView::widget([ 'dataProvider' => $dataProvider, ...
Дополнительные подсказки:
- Получить название текущей категории из $dataProvider ('name' - поле в модели category) $dataProvider->query->primaryModel->name
- Получить количество семинаров в текущей категории из $dataProvider
$dataProvider->getCount()
5 декабря 2016, Программирование, веб-кодинг / Метки: GridView
16 января 2023

Yii2-user сменить текущего пользователя или переход на другого пользователя (SwitchIdentity)
Impersonate User / Become another user
12 декабря 2022

Yii2: uclead MultipleInput + kartik DepDrop
Настраиваем множественные поля с выпадающим списком