在Laravel 5中TRUNCATE ... CASCADE

时间:2015-09-17 13:02:36

标签: laravel laravel-5 eloquent laravel-5.1

这应该是直截了当的,但我无法在文档或其他地方找到它。如何使用Eloquent ORM在Laravel 5.1中TRUNCATE...CASCADE使用外键的表?仅使用User::truncate();并不会通过CASCADE参数。

2 个答案:

答案 0 :(得分:8)

看起来这样做的唯一方法是直接运行语句:

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

答案 1 :(得分:0)

如果您需要truncate多个表,则可以删除CASCADE关键字并提供以逗号分隔的表名列表。

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

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