基本上,我想这样做,用户将选中复选框,然后单击deleteAll按钮一次删除多个记录。为此,我启动ajax并获取所有选中的ID,然后选择id发送到控制器的方法。
我正在使用delete方法从数据库中删除多条记录,但它无法正常工作。
我不想使用循环删除多个记录。
CakePHP是否有其他方法可以同时删除多条记录?
我尝试了以下代码:
script.js:
$('#del_all').click(function(){
var selected=[];
$('.check:checked').each(function(){
selected.push($(this).attr('id'));
});
$.ajax({
type: "post",
url: "Users/deleteall", // URL to request
data: {"id":selected}, // Form variables
success: function(response){
alert(response);
}
});
});
控制器方法:
public function deleteall(){
$data=$this->request->data['id'];
$user_ids=implode("','",$data);
$user_ids="'".$user_ids."'";
$this->User->delete($user_ids,$cascade=false);
}
答案 0 :(得分:8)
尝试使用deleteall
尝试使用此
public function deleteall()
{
$user=array(1,2,3); // replace with real values
$condition = array('User.id in' => $user);
$this->User->deleteAll($condition,false);
}
答案 1 :(得分:2)
使用deleteAll()
方法
$this->User->deleteAll(array('id' => $user_ids), false);
请注意:
即使没有删除任何记录,
deleteAll()
也会返回true
,因为删除查询的条件成功且没有匹配的记录。
您可以在manual找到更多信息。