2015-09-17 16 views
5

Dies sollte einfach sein, aber ich kann es nicht in der Dokumentation oder anderswo finden. Wie kann ich eine Tabelle mit Fremdschlüsseln in Laravel 5.1 mit dem Eloquent ORM TRUNCATE...CASCADE? Die Verwendung nur User::truncate(); führt nicht durch das CASCADE Argument.TRUNCATE ... CASCADE in Laravel 5

+0

Ist eine MySQL-Datenbank? – gmsantos

+0

Nein, ich benutze Postgres - ich möchte dies ohne Raw schreiben SQL –

+0

Ich glaube nicht, dass dies möglich ist. Ich sehe nichts in der API für diese und die kleine Forschung, die ich getan habe, es sieht aus wie Leute nur 'DB :: statement ('TRUNCATE Benutzer CASCADE') verwenden;' – user3158900

Antwort

6

Sieht aus wie der einzige Weg, dies zu tun ist durch die Anweisung direkt ausgeführt wird:

DB::statement('TRUNCATE users CASCADE'); 
0

Wenn Sie mehr als eine Tabelle zu truncate benötigen, können Sie das CASCADE Schlüsselwort und stellen eine Liste von Tabellennamen entfernen getrennt mit Komma.

$tables = [ 
     'roles', 
     'role_users', 
     'users', 
     'revisions', 
    ]; 

    if (count($tables) > 1) { 
     DB::statement('TRUNCATE TABLE ' . implode(',', $tables) . ';'); 
    } else { 
     DB::statement('TRUNCATE TABLE ' . $tables[0] . ' CASCADE;'); 
    }