Да, в Yii2 есть решение для динамичного отображения столбцов в GridView, это делается с помощью использования виджета "yiigridGridView" и дополнительными настройками.
Перед тем, как начать использовать динамическое отображение столбцов, необходимо иметь массив данных и определить массив столбцов, который будет отображаться в GridView. Затем, можно использовать метод "columns" у виджета "yiigridGridView", чтобы определить столбцы.
Однако, если требуется динамически отображать или скрывать столбцы в зависимости от определенных условий, нужно использовать дополнительные функции, такие как "visible" или "format".
Например, чтобы изменить отображение столбцов в зависимости от значения в ячейке, можно использовать функцию "format". Ниже приведен пример, показывающий, как это можно сделать:
use yiigridGridView; <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ 'id', 'name', [ 'attribute' => 'status', 'format' => 'raw', 'value' => function($data) { return $data->status == 1 ? 'Active' : 'Inactive'; }, ], [ 'class' => 'yiigridCheckboxColumn', 'visible' => Yii::$app->user->can('admin'), ], ], ]); ?>
В этом примере мы использовали функцию "format" для изменения формата отображения столбца "status" в зависимости от значения в соответствующей ячейке. Также, мы использовали свойство "visible" для скрытия столбца "CheckboxColumn" в зависимости от того, является ли пользователь администратором.
Кроме того, можно использовать другие функции и настройки, такие как "visibleColumns", "headerOptions", "contentOptions" и т.д., чтобы более гибко настроить отображение столбцов в GridView.