molti modi di eliminazione di record in laravel 4.1
1) Quando si desidera eliminare i record dal database, è sufficiente chiamare il metodo di eliminazione:
$affected = DB::table('users')->where('id', '=', 1)->delete();
2) Vuoi eliminare rapidamente un record per la sua identità? Nessun problema. Basta passare l'ID nel metodo di eliminazione:
$affected = DB::table('users')->delete(1);
3) Se si desidera eliminare più record da id in una sola volta, passando loro ID in un array - utilizzare il seguente
$users_to_delete = array(1, 2, 3);
DB::table('users')->whereIn('id', $users_to_delete)->delete();
4) Se si desidera eliminare più record da id in una sola volta, passando un array di utenti - utilizzare il seguente
//(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) Eliminazione un modello esistente per chiave
User::destroy(1);
User::destroy(array(1, 2, 3));
User::destroy(1, 2, 3);
6) Naturalmente, si può anche eseguire una query di eliminazione su una serie di modelli:
$affectedRows = User::where('votes', '>', 100)->delete();
questo può aiutare? http://stackoverflow.com/questions/21747529/laravel-how-to-delete-rows-from-multiple-table-with-same-id-with-only-1-query –
in realtà, l'ho già fatto . È facile perché in questo caso stai cancellando ogni record in cui un attributo è uguale a un valore specifico. Nel mio caso, in alcuni casi ho bisogno di costruire un array con tre diversi attributi, e ogni attributo può assumere valori diversi ... – arrigonfr
Dire .. $ 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)); Quello che voglio evitare è inserire la query delete all'interno di un ciclo foreach. – arrigonfr