如何在Yii2 gridview中将动作按钮显示为下拉菜单?

如何在Yii2 gridview中将动作按钮显示为下拉菜单?,gridview,yii,yii2,yii2-advanced-app,Gridview,Yii,Yii2,Yii2 Advanced App,我想在Yii 2 gridview中将动作按钮显示为下拉菜单。我如何在不使用任何扩展的情况下实现这一点 我已经添加了下面的源代码- <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'],

我想在Yii 2 gridview中将动作按钮显示为下拉菜单。我如何在不使用任何扩展的情况下实现这一点

我已经添加了下面的源代码-

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
                ['class' => 'yii\grid\SerialColumn'],

                'id',
                'name',

                ['class' => 'yii\grid\ActionColumn',
                    'template'=>'{view}{update}{delete}',
                    'buttons' => [
                        'view' => function ($url, $model) {
                            return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [
                                'title' => Yii::t('app', 'View'),
                            ]);
                        },
                        'update' => function ($url, $model) {
                            return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [
                                'title' => Yii::t('app', 'Update'),
                            ]);
                        },
                    ],

                    'urlCreator' => function ($action, $model, $key, $index) {
                        if ($action === 'view') {
                            $url ='/site/view?id='.$model->id;
                            return $url;
                        }
                        if ($action === 'update') {
                            $url ='/site/update?id='.$model->id;
                            return $url;
                        }
                    }
                ],
    ],
]); ?>
Google“Bootstrap下拉列表”,然后用您找到的内容替换“template”=>“{view}{update}{delete}”中的操作。保留这三个动作而不是文本

问候。

以下是我是如何做到的:

使用yii\bootstrap\ButtonDropdown;
// ... GridView配置。。。
[
'class'=>'yii\grid\ActionColumn',
'模板'=>'{all}',
“按钮”=>[
'all'=>函数($url、$model、$key){
返回按钮下拉::小部件([
'encodeLabel'=>false,//如果要在按钮标签上使用html
“标签”=>“选项”,
“下拉列表”=>[
'encodeLabels'=>false,//如果要在项目标签上使用html
'项目'=>[
[
'label'=>\Yii::t('Yii','View'),
'url'=>['view','id'=>$key],
],
[
'label'=>\Yii::t('Yii','Update'),
'url'=>['update','id'=>$key],
'visible'=>true,//如果要根据条件隐藏项目,请使用此选项
],
[
'label'=>\Yii::t('Yii','Delete'),
“链接选项”=>[
“数据”=>[
'方法'=>'发布',
'确认'=>\Yii::t('Yii','您确定要删除此项目吗?'),
],
],
'url'=>['delete','id'=>$key],
“可见”=>true,//同上
],
],
“选项”=>[
'class'=>'右下拉菜单',//右下拉菜单
],
],
“选项”=>[
'class'=>'btn default',//btn成功,btn信息等
],
'split'=>true,//如果需要拆分按钮
]);
},
],
],
// ... 其他GridView配置。。。

您可以查看按钮下拉文档。

如何在此自定义url并使用弹出的模式显示视图、更新操作?