Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何基于ID或对象数组使用Laravel 4.1执行大规模删除?_Php_Arrays_Orm_Laravel 4_Eloquent - Fatal编程技术网

Php 如何基于ID或对象数组使用Laravel 4.1执行大规模删除?

Php 如何基于ID或对象数组使用Laravel 4.1执行大规模删除?,php,arrays,orm,laravel-4,eloquent,Php,Arrays,Orm,Laravel 4,Eloquent,我只是想知道这是否可能 我知道当您有多行要插入时,您可以构建一个数组并执行以下操作: DB::table('some_table')->insert($array); DB::table('some_table')->delete($array); 但据我所知,对删除进行同样的操作似乎是不可能的,我想知道是否有人知道这样做的方法: DB::table('some_table')->insert($array); DB::table('some_table')->de

我只是想知道这是否可能

我知道当您有多行要插入时,您可以构建一个数组并执行以下操作:

DB::table('some_table')->insert($array);
DB::table('some_table')->delete($array);
但据我所知,对删除进行同样的操作似乎是不可能的,我想知道是否有人知道这样做的方法:

DB::table('some_table')->insert($array);
DB::table('some_table')->delete($array);

在Laravel 4.1中删除记录的多种方法

1) 如果要从数据库中删除记录,只需调用delete方法:

$impacted=DB::table('users')->where('id','=',1)->delete();
2) 要按记录的ID快速删除记录吗?没问题。只需将ID传递到delete方法:

$infected=DB::table('users')->删除(1);
3)如果要一次按id删除多个记录,请在数组中传递它们的id-使用以下命令

$users\u to\u delete=数组(1,2,3);
DB::table('users')->其中('id',$users_to_delete)->delete();
4)如果要通过传递一组用户一次按id删除多条记录,请使用以下命令

//(案例A)按数字0,1,2索引的用户字段。。
$users\u to\u delete=数组(
“0”=>数组('1'、'Frank'、'Smith'、'Whatever'),
“1'=>数组('5'、'John'、'Johnson'、'Whateverelse'),
);
$ids_to_delete=数组_映射(函数($item){return$item[0];},$users_to_delete);
DB::table('users')->其中('id',$ids_to_delete)->delete();
//(案例B)按键索引的用户字段
$users\u to\u delete=数组(
“0”=>数组('id'=>'1'、'name'=>'Frank'、'姓氏'=>'Smith'、'title'=>'Whatever'),
“1'=>数组('id'=>'5','name'=>'John','name'=>'Johnson','title'=>'Whateverelse'),
);
$ids_to_delete=数组_映射(函数($item){return$item['id'];},$users_to_delete);
DB::table('users')->其中('id',$ids_to_delete)->delete();
5) 按键删除现有模型

User::destroy(1);
用户::销毁(数组(1,2,3));
用户::销毁(1,2,3);
6) 当然,您也可以对一组模型运行删除查询:

$affectedRows=User::where('投票','>',100)->delete();

这可能有帮助吗?事实上,我已经做到了。这很容易,因为在这种情况下,您只需删除每个记录,其中一个属性等于一个特定值。在我的例子中,在某些情况下,我需要构建一个具有三个不同属性的数组,每个属性可能具有不同的值…比如$数组=数组(数组('1'=>1,'2'=>2,'3'=>3),数组('1'=>4,'2'=>5,'3'=>6),数组('1'=>7,'2'=>8,'3'=>9),数组('1'=>0,'2'=>1,'3'=>2));我要避免的是将delete查询放在foreach循环中。可能使用这种语法类型,如果我构建一个只包含值而不包含键的数组,我可以执行以下操作:DB::table('some_table')->其中('attr1,attr2,attr3',$array)->delete();不幸的是,我还不熟悉Laravel,所以我不能再说什么了:/如果我需要从多个表中删除,请提供帮助