我有删除记录的问题。每次我点击管理页面上的删除按钮,它都会触发"错误400.您的请求无效"
以下是删除方法
public function actionDelete($id)
{
if(Yii::app()->request->isPostRequest){
$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.');
}
}
该代码有什么问题?
答案 0 :(得分:1)
您的删除方法仅响应POST请求。确保您的按钮设置为向控制器/操作提交POST请求
答案 1 :(得分:1)
我能够解决这个问题。你得到"错误400的原因。你的请求无效"删除时,您附加了多个jquery插件。默认情况下,Yii注册jquery库。
这是文件
**<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/asset/js/lib/jquery-1.11.2.js"></script>**
避免添加另一个jquery lib。
希望它可以帮助别人。
答案 2 :(得分:0)
如果你想删除一些使用Ajax删除的记录,请关注。
这是我的删除按钮,我将其设置为ajax链接
echo CHtml :: ajaxLink(&#39;删除&#39;,$ this-&gt; createUrl(&#39; / controller / action / id /&#39; .123),数组(&#39;成功&#39; =&gt;&#39; rowdelete(&#39; .123。&#39;)&#39;,&#39;输入&#39; =&gt;&#39; GET&#39;) ,数组(&#39;确认&#39; =&gt;&#34;您确定要删除。&#34;));
现在在控制器中使用默认操作
public function actionDelete($ id){ $这 - &GT; loadModel($ ID) - &GT;删除();
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if (!isset($_GET['ajax'])){
Yii::app()->user->setFlash('CityDel', 'City Deleted Successfully');
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
}
答案 3 :(得分:0)
您可能需要在控制器中取消注释或删除由gii生成的行:
'PostOnly + delete',//我们只允许通过POST请求删除