Вопрос по php, yii – Ошибка Yii 400 Не удалось проверить токен CSRF при попытке удалить сообщение
Когда я пытался удалить сообщение, я получил эту ошибку:
Yii Error 400 The CSRF token could not be verified
Я не знаю, что именно вызывает это и с чем это может быть связано. вот мое действие удалить:
public function actionDelete($id) {
if (Yii::app()->request->isPostRequest) {
// we only allow deletion via POST request
$this->loadModel($id)->delete();
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if (!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
else
throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
}
protected function afterDelete()
{
parent::afterDelete();
Image::model()->deleteAll('name='.$this->id);
Date::model()->deleteAll('tbl_show_id='.$this->id);
Press::model()->deleteAll('tbl_show_id='.$this->id);
}
4
ответа
Похоже, вы включеныПроверка CSRF, Если вы хотите использовать его, прочитайте документацию и убедитесь, что вы отправляете токен CSRF в каждом запросе POST.
У меня была такая же проблема, но следующие решили ее. Надеюсь, поможет. я добавил
'params'=> array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken)
к следующему коду:
<?php
echo CHtml::linkButton('Delete',array(
'submit'=>$this->createUrl('delete',array('id'=>$model->id)),
'confirm'=>"Are you sure want to delete ".$item->product->name."from the shopping cart?",
'params'=> array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken)));
?>
Благодарю.