douqiangchuai7674
2016-06-29 04:28
浏览 124
已采纳

yii2删除记录错误

i getting error while deleting record in all table:

An Error occurred while handling another error:
exception 'yii\web\ForbiddenHttpException' with message 'You are not allowed to perform this action.' in D:\FORBIDDEN\projects\UniServerZ\www\project\vendor\yiisoft\yii2\filters\AccessControl.php:151
Stack trace:

Previous exception:
exception 'yii\web\MethodNotAllowedHttpException' with message 'Method Not Allowed. This url can only handle the following request methods: POST.' in D:\FORBIDDEN\projects\UniServerZ\www\project\vendor\yiisoft\yii2\filters\VerbFilter.php:105
Stack trace:

_

here my controller:

public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['POST'],
                ],
            ],
        ];
    }


public function actionDelete($id)
{
   $this->findModel($id)->delete();
   return $this->redirect(['index']);
}

and my delete button in view.php

<?= Html::a('Delete', ['delete', 'id' => $model->id_transaksi], [
            'class' => 'btn btn-danger',
            'data' => [
                'confirm' => 'Are you sure you want to delete this item?',
                'method' => 'post',
            ],
        ]) 
?>


its working when i replaced POST with GET, but alert confirm not working.. do you know what's wrong? help, please

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongyuan2652 2016-06-30 08:33
    已采纳

    It might be that you get the error message

    Method Not Allowed. This url can only handle the following request methods: POST.
    

    because somehow the browser reloads the page with requested url. When you click on the link to delete that model, the request method is POST, as it is specified. At that point some exception occurs (seems to be related to access rules) that makes you browser forgive about the request method.

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dou4624 2016-06-29 05:20
    public function behaviors()
        {
            return [
                'verbs' => [
                    'class' => VerbFilter::className(),
                    'actions' => [
                        'delete' => ['post'],//not POST
                    ],
                ],
            ];
        }
    

    typo mistake, hope it will help ref.link http://www.yiiframework.com/doc-2.0/yii-filters-verbfilter.html

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题