错误400无效请求YII用于删除记录

dib*_*_ab 5 post yii delete-row

我试图删除Yii中的一条记录,它会抛出错误400.请不要再重复此请求.它正在检查一个post变量,我的控制器文件有
if(Yii::app()->request->isPostRequest)
当我回显我的post变量时它是空白而$ _GET有我要删除的id,我的View文件看起来像,

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?'));
Run Code Online (Sandbox Code Playgroud)

访问规则已删除已通过身份验证的用户,这是正确的.也试了一下*.我也尝试将其作为隐藏变量发送,但没有好处.

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

boo*_*dev 15

发生这种情况是因为它不是邮寄请求.CHtml::link有一种方法可以使用post方法,而不是get.这需要你使用submit的属性clientChange,在你的htmlOptions.

有点像这样:

echo CHtml::link(CHtml::encode('Delete image'), array('image/delete', 'id'=>$image->id),
  array(
    'submit'=>array('image/delete', 'id'=>$image->id),
    'class' => 'delete','confirm'=>'This will remove the image. Are you sure?'
  )
);
Run Code Online (Sandbox Code Playgroud)


小智 10

Curd的默认值是这样的

/**
 * @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
    );
}
Run Code Online (Sandbox Code Playgroud)

删除操作只能通过POST访问; 你可以检查一下.

所以你需要删除这一行才能使用'postOnly + delete',