有没有一种方法可以使用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/