updateall update query findbyattributes deleteallbyattributes delete create post yii delete-row

post - update - Error 400 Solicitud no válida YII para eliminar un registro



yii create command query row (4)

Creo que su actionDelete () contiene el código que arroja esto, y supongo que depende de la llamada AJAX o no. Compruebe su acción relevante Eliminar ()

Estoy intentando eliminar un registro en Yii, lo que arroja un error 400. No vuelva a repetir esta solicitud. Está buscando una variable de publicación, mi archivo de controlador tiene
if(Yii::app()->request->isPostRequest)
Cuando hago eco de mi variable de publicación, está en blanco, mientras que $ _GET tiene la identificación que quiero eliminar, mi archivo de vista se ve así,

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?''));

Las reglas de acceso tienen eliminación para los usuarios autenticados, lo cual es correcto. Intenté con un * también. También traté de enviarlo como una variable oculta, pero no es bueno.

No puedo averiguar cómo debo publicar un formulario en Yii.


De acuerdo con mi experiencia esta causada por algunos archivos javascript cargados después de jquery. Si tiene un enlace jQuery al final del documento, elimínelo.


Esto está sucediendo porque no es una solicitud posterior. CHtml::link tiene una manera de usar el método de publicación, en lugar de get. Esto requiere que use el atributo submit de clientChange , en sus htmlOptions .

Algo como esto:

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?'' ) );


el valor predeterminado con Curd será así

/** * @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 ); }

La acción de eliminación solo puede accederse mediante POST; Usted puede comprobarlo.

Por lo tanto, debe eliminar esta línea para que funcione con ''postOnly + delete'',