Как реализовать выподающий список со значениями из массива в GridView yii2?

Как реализовать выпадающий список со значениями из массива в каждой ячейки в колонке , и если в одной колонке выбрано значение, то в других выпадающих списках оно должно исчезнуть в GridView yii2?

'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            [
                'attribute' => 'expert_date',
                'value' => ?????
                
                
            ]

что должно быть в Value??? и остальных свойствах?


Ответы (1 шт):

Автор решения: Михаил Динов

Вот посмотри, может поможет чем:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel'  => $searchModel,
    'columns'      => [
        [
            'attribute' => 'custom_attribute',
            'value'     => static function ($model) {
                /** @var $model \frontend\models\ExampleModel */

                // В каждой ячейке
                return Html::dropDownList('name', null,
                    ArrayHelper::getColumn($model->relationModels, 'column'));
            },
            'format'    => 'raw', // Значение будет отображено как есть
            'filter'    => ['custom_1', 'custom_2'], // Выпадающий список в фильтре
        ],
    ],
]) ?>

... и если в одной колонке выбрано значение, то в других выпадающих списках оно должно исчезнуть в GridView yii2?

Вот непонятна постановка вопроса))) Опиши по подробнее или у заказчика спроси, должно исчезать или нет)

Насколько я понял, ты хочешь запихнуть в ячейку каждого ряда еще какие-то дополнительные фильтры?

Если да, то в принципе можешь, но это жесть)

Мне кажется тебе нужен отдельный crud и реализовывать фильтрацию на базовых фильтрах, а не пихать еще один столб)

→ Ссылка