Post 错误400删除记录的请求YII无效

Post 错误400删除记录的请求YII无效,post,yii,delete-row,Post,Yii,Delete Row,我试图删除Yii中的一条记录,这会抛出一个错误400。请不要再次重复此请求。它正在检查post变量,我的控制器文件有如果(Yii::app()->request->isPostRequest)当我回显我的post变量时,它是空的,而$\u GET有我想要删除的id,我的视图文件看起来像 echo CHtml::link(CHtml::encode('Delete image'), array('image/delete', 'id'=>$image->id), array('clas

我试图删除Yii中的一条记录,这会抛出一个错误400。请不要再次重复此请求。它正在检查post变量,我的控制器文件有
如果(Yii::app()->request->isPostRequest)

当我回显我的post变量时,它是空的,而$\u GET有我想要删除的id,我的视图文件看起来像

echo CHtml::link(CHtml::encode('Delete image'), array('image/delete', 'id'=>$image->id), array('class' => 'delete','confirm'=>'This will remove the image. Are you sure?'));
访问规则对经过身份验证的用户进行了删除,这是正确的。我也试过了。 我还尝试将其作为隐藏变量发送,但效果不佳


无法弄清楚我应该如何在Yii中发布表单。

我认为您的actionDelete()包含引发此问题的代码,我想这取决于AJAX调用与否。检查相关的actionDelete()

之所以发生这种情况,是因为它不是post请求
CHtml::link
有一种方法可以让您使用post方法,而不是get。这要求您在
htmlOptions
中使用的
submit
属性

有点像这样:

echo CHtml::link(CHtml::encode('Delete image')、array('image/Delete','id'=>$image->id),
排列(
'submit'=>array('image/delete','id'=>$image->id),
'class'=>'delete','confirm'=>'这将删除图像。您确定吗
)
);

凝乳的默认值如下

/**
 * @return array action filters
 */
public function filters()
{
    return array(
        'accessControl', // perform access control for CRUD operations
        'postOnly + delete', // we only allow deletion via POST request
    );
}
删除操作只能通过POST访问;你可以查一下

因此,您需要删除此行才能与您一起工作
“postOnly+delete”,

根据我的经验,这是由jquery之后加载的一些javascript文件造成的。
如果文档末尾有jQuery链接,请将其删除。

谢谢。。成功了。:)所以,所有默认值都是Yii中的“Get”,对吗?当我需要发布一个表单时,我需要明确地定义它,就像你展示它的方式一样?默认情况下,链接应该总是“Get”,无论是yii还是简单的html。但是是的,当我们需要通过链接发布时,这是yii中的方式,它将一个小javascript行附加到输出,从而提交表单。但是,如果您谈论的是成熟的表单,请看一下cactiveform。我无法实现这一点,请有人检查我的问题:JQuery中的构建确实是我的问题。我已通过以下方式禁用它: