不允许使用Yii2方法。此url只能处理以下请求方法:POST

不允许使用Yii2方法。此url只能处理以下请求方法:POST,yii2,Yii2,Yii2删除确认对话框未通过菜单小部件项工作 [ 'label' => '<i class="fa fa-trash-o alis"></i> Sil', 'url' => ['site/delete', 'id' => $model->id], 'linkOptions' => [ 'data-confirm' => 'Are you sure you want to delete this i

Yii2删除确认对话框未通过菜单小部件项工作

[
    'label' => '<i class="fa fa-trash-o alis"></i> Sil',
    'url' => ['site/delete', 'id' => $model->id],
    'linkOptions' => [
        'data-confirm' => 'Are you sure you want to delete this item?',
        'data-method' => 'post',
    ],
    'visible' => 'visible'
],
[
“标签”=>“Sil”,
'url'=>['site/delete','id'=>$model->id],
“链接选项”=>[
'数据确认'=>'是否确实要删除此项目?',
“数据方法”=>“post”,
],
“可见”=>“可见”
],
我看到了这个错误:

不允许使用方法(#405) 方法不允许。此url只能处理以下请求方法:POST

如何使用“删除确认”对话框。然后我尝试了这个,但没有工作

[
    'label' => '<i class="fa fa-trash-o alis"></i> delete',
    'url' => ['site/delete','id' => $model->id],
    [
        'data' =>[
            'data-confirm' => 'Are you sure you want to delete this item?',
            'data-method' => 'post',
        ],
    ],
    'visible' => 'visible'
],
[
“标签”=>“删除”,
'url'=>['site/delete','id'=>$model->id],
[
“数据”=>[
'数据确认'=>'是否确实要删除此项目?',
“数据方法”=>“post”,
],
],
“可见”=>“可见”
],

我通过模板选项(如以下代码块)修复了该问题:

['label' => '<i class="fa fa-trash-o alis"></i> delete',
    'url' => ['site/delete','id' => $model->id],
    'template' => '<a href="{url}" data-confirm = "Are you sure you want to delete this item?", data-method="post">{label}</a>',
    'visible' => 'visible'
],
['label'=>'delete',
'url'=>['site/delete','id'=>$model->id],
'模板'=>'',
“可见”=>“可见”
],
查看文件中的

['label' => '<i class="fa fa-trash-o alis"></i> delete',
   'url' => ['site/delete','id' => $model->id],
    'template' => '<a href="{url}" data-confirm = "Are you sure you want to delete this item?", data-method="post">{label}</a>',
   'visible' => 'visible'

你发送和获取。但在控制器中,默认情况下为“仅删除”POST 在控制器中发送POST或编辑规则,如下所示:

public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
];
public function behaviors()
{
    return [
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'delete' => ['post'], //delete this string to may GET
            ],
        ],
    ];
}

我认为错误的原因是当您单击控制器的函数behaviors()中的操作所配置的方法的link difference时的HTTP方法。所以你需要定义链接的方法(对不起,我的英语不好)。我试过了,结果成功了:

Html::a('', $url,
  [
     'data' => [
         'method' => 'post',
          // use it if you want to confirm the action
          'confirm' => 'Are you sure?',
      ],
      'class' => 'glyphicon glyphicon-trash btn btn-default btn-xs custom_button'
   ]
 );