Yii2:如何创建自定义删除按钮?

Aza*_*mat 2 php gridview yii2

我正在使用Yii2 Framework.我有GridView上的数据,每行都有一个删除按钮.这是我的代码:

'content'=>function($data){ return Html::a('<i class="glyphicon glyphicon-ban-circle"></i> Bekor qilish', ['delete'], ['class' => 'btn btn-danger', 'data-method'=>'post']);

我希望在用户单击按钮时触发post actionDelete.我的代码无效,它给了我错误#400:缺少必需的参数:id.

我从Yii v1中找到了以下代码:

echo CHtml::link("Delete", '#', array('submit'=>array('post/delete', "id"=>$data->id), 'confirm' => 'Are you sure you want to delete?'));
Run Code Online (Sandbox Code Playgroud)

我想要Yii2的这个功能.我是Yii Framework的新手.拜托,请帮助我.

Red*_*tle 8

echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,

'columns' => [
    'Sample_Column1',
    'Sample_Column2',
        ['header' => 'Actions',
        'class' => 'yii\grid\ActionColumn',
        'template' => '{new_action}',
        'buttons' => [
            'new_action' => function ($url) {
                return Html::a('<span class="glyphicon glyphicon-ban-circle"></span>', $url, [
                            'title' => Yii::t('app', 'Delete'),
                            'data-confirm' => Yii::t('yii', 'Are you sure you want to delete?'),
                            'data-method' => 'post', 'data-pjax' => '0',
                ]);
            }
        ], 'urlCreator' => function ($action, $model) {
            if ($action === 'new_action') {
                $url = Url::to(['your_controller/your_delete_action', 'id' => $model->Some_id_from_your_db]);
                return $url;
            }
        }
    ],
],
]);
Run Code Online (Sandbox Code Playgroud)
  1. 确保在控制器中设置删除操作并替换 'your_controller/your_delete_action'
  2. Some_id_from_your_db要替换的数据ID 替换为数据库ID.希望能帮助到你.干杯.

编辑:这'Sample_Column1', 'Sample_Column2',仅供您参考,因为您没有提及您的表格详细信息.因此,相应地编辑它.