Viele Möglichkeiten zum Löschen von Datensätzen in Laravel 4.1
1) Wenn Sie Datensätze aus der Datenbank löschen möchten, rufen Sie einfach die Löschmethode:
$affected = DB::table('users')->where('id', '=', 1)->delete();
2) Möchten Sie einen Datensatz schnell durch seine ID löschen? Kein Problem. Übergeben Sie einfach die ID in die Löschmethode:
$affected = DB::table('users')->delete(1);
3) Wenn Sie mehrere Datensätze von id löschen möchten, ihre IDs in einem Array übergeben - verwenden Sie die folgende
$users_to_delete = array(1, 2, 3);
DB::table('users')->whereIn('id', $users_to_delete)->delete();
4) Wenn Sie mehrere Datensätze von id auf einmal, vorbei an einer Reihe von Benutzern löschen möchten - verwenden Sie die folgende
//(case A) User fields indexed by number 0,1,2..
$users_to_delete = array(
'0'=> array('1','Frank','Smith','Whatever'),
'1'=> array('5','John','Johnson','Whateverelse'),
);
$ids_to_delete = array_map(function($item){ return $item[0]; }, $users_to_delete);
DB::table('users')->whereIn('id', $ids_to_delete)->delete();
//(case B) User fields indexed by key
$users_to_delete = array(
'0'=> array('id'=>'1','name'=>'Frank','surname'=>'Smith','title'=>'Whatever'),
'1'=> array('id'=>'5','name'=>'John','surname'=>'Johnson','title'=>'Whateverelse'),
);
$ids_to_delete = array_map(function($item){ return $item['id']; }, $users_to_delete);
DB::table('users')->whereIn('id', $ids_to_delete)->delete();
5)
User::destroy(1);
User::destroy(array(1, 2, 3));
User::destroy(1, 2, 3);
6) Natürlich ein bestehendes Modell von Key
löschen, können Sie auch eine Löschabfrage auf einer Reihe von Modellen laufen:
$affectedRows = User::where('votes', '>', 100)->delete();
dies helfen kann? http://stackoverflow.com/questions/21747529/laravel-how-to-delete-rows-from-multiple-table-with-same-id-with-only-1-query –
eigentlich habe ich das schon gemacht . Es ist einfach, weil Sie in diesem Fall nur jeden Datensatz löschen, in dem ein Attribut einem bestimmten Wert entspricht. In meinem Fall muss ich in einigen Fällen ein Array mit drei verschiedenen Attributen erstellen, und jedes Attribut kann verschiedene Werte annehmen ... – arrigonfr
Say .. $ array = array (array ('1' => 1, '2' => 2, '3' => 3), Array ('1' => 4, '2' => 5, '3' => 6), Array ('1' => 7, '2' => 8, '3' => 9), Array ('1' => 0, '2' => 1, '3' => 2)); Was ich vermeiden möchte, ist das Löschen der Abfrage in eine foreach-Schleife. – arrigonfr