如何在 CakePHP 2.6 中使用 IN(of MySQL) 一起删除多条记录

How to delete multiple records together using IN(of MySQL) in CakePHP 2.6

基本上,我想做的是用户将选中复选框并单击 deleteAll 按钮一次删除多条记录。为此,我触发 ajax 并获取所有选定的 ID,然后将选定的 ID 发送到控制器的方法。

我正在使用删除方法从数据库中删除多条记录,但它不起作用。

而且我不想使用循环删除多条记录。

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);      
}

使用deleteAll()方法

$this->User->deleteAll(array('id' => $user_ids), false);

注意:

deleteAll() will return true even if no records are deleted, as the conditions for the delete query were successful and no matching records remain.

您可以在 manual 中找到更多信息。

尝试使用 deleteall 尝试使用此

public function deleteall()
{
    $user=array(1,2,3);     // replace with real values
    $condition = array('User.id in' => $user);
    $this->User->deleteAll($condition,false);     
}