yii2 ошибка удаления записи

я получаю сообщение об ошибке при удалении записи во всей таблице:

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:

_

вот мой контроллер:

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

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

и моя кнопка удаления в 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',
],
])
?>

это работает, когда я заменил POST на GET, но предупреждение не работает ..
ты знаешь что не так? Помогите, пожалуйста

0

Решение

Возможно, вы получили сообщение об ошибке

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

потому что каким-то образом браузер перезагружает страницу с запрошенным URL. Когда вы нажимаете на ссылку, чтобы удалить эту модель, метод запроса POST, как это указано. В этот момент возникает некоторое исключение (похоже, связанное с правилами доступа), которое заставляет браузер простить метод запроса.

0

Другие решения

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

опечатка, надеюсь, это поможет
ref.link
http://www.yiiframework.com/doc-2.0/yii-filters-verbfilter.html

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector