Кнопка раскрывающегося списка Yii2 Gridview в столбце действий - PullRequest
0 голосов
/ 09 мая 2019

Я хочу, чтобы кнопка моего столбца действий была выпадающей кнопкой в ​​моем виде сетки, это мой код

// ... GridView configuration ...
['class' => 'yii\grid\ActionColumn',               
            'template' => '{sell} {delete}',
            'buttons' => [
                'sell' => function ($url, $model) {
                    return Html::a('<button type="button" class="btn btn-success"><i class="glyphicon glyphicon-shopping-cart"></i></button>', $url, [
                                'title' => Yii::t('app', 'Sell Tickets'),
                                'data-toggle' => "modal",
                                'data-target' => "#myModal",
                                'data-method' => 'post',
                    ]);
                },
                'delete' => function ($url, $model) {
                    return Html::a('<button type="button" class="btn btn-danger"><i class="glyphicon glyphicon-remove-sign"></i></button>', $url, [
                                'title' => Yii::t('app', 'Delete'),
                                'data-toggle' => "modal",
                                'data-target' => "#myModal",
                                'data-method' => 'post',
                    ]);
                },
            ],
            'urlCreator' => function ($action, $model, $key, $index) {
                if ($action == 'sell') {
                    $url = Url::toRoute(['trip/sell', 'id' => $model->tripScheduleId]);
                    return $url;
                } else {
                    $url = Url::toRoute(['trip/delete', 'id' => $model->tripScheduleId]);
                    return $url;
                }
            },
        ],

, и это представление

enter image description here

Я следил за многими в том или ином источнике, но ничего не помогало мне.

1 Ответ

1 голос
/ 10 мая 2019

buttons - это массив функций рендеринга, просто визуализируйте раскрывающийся список там и удалите раздел urlCreator.

urlCreator используется для создания URL-адресов для кнопок по умолчанию в шаблоне, то есть путем рендерингавыпадающий список с правильными URL, которые вам не понадобятся.

'template' => '{actions}',
'buttons' => [
    'actions' => function ($url, $model) {
        //return you dropdown here
    }
],

Просто не обращайте внимания на параметр $url и создавайте свои URL внутри функции.

...