有没有一种方法可以使用laravel 4中的 Eloquent 或流利的方法来截断db中的所有表?我不想指定表名,我只想截断所有表。换句话说,清空所有表格。

最佳答案



因此,请确保已安装composer require doctrine/dbal
1.获取所有表名

$tableNames = Schema::getConnection()->getDoctrineSchemaManager()->listTableNames();

2.遍历表名数组并使用Schema Builder截断
foreach ($tableNames as $name) {
    //if you don't want to truncate migrations
    if ($name == 'migrations') {
        continue;
    }
    DB::table($name)->truncate();
}



SQLSTATE [42000]:语法错误或访问冲突:1701无法截断外键约束中引用的表

您可以禁用外键检查
Schema::disableForeignKeyConstraints();

并确保重新启用
Schema::enableForeignKeyConstraints();

关于php - 用 Eloquent 方式截断laravel中的所有表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18909065/

10-13 02:57