Laravel 当我试图删除一个表中键类似外键的行时,如何获得数据库错误?

Laravel 当我试图删除一个表中键类似外键的行时,如何获得数据库错误?,laravel,migration,Laravel,Migration,(拉威尔框架) 如何使用迁移在数据库中创建表所以,当我尝试从表中删除一行时,如果该行的键在另一个表中的某个位置作为外键,则数据库会出错,不允许我这样做 我是否必须在迁移中创建关系,在迁移中我说数据库中的外键是什么,或者是否有其他方法只使用Laravel模型 我是新来的。多谢各位 您需要删除并停用外键检查,也就是说,我正在使用以下函数来完成此操作。首先,我将外键检查设置为0,然后截断表并将其设置回1。将外键检查设置为0允许截断表,即使存在外键 # functions to truncate use

(拉威尔框架)

如何使用迁移在数据库中创建表所以,当我尝试从表中删除一行时,如果该行的键在另一个表中的某个位置作为外键,则数据库会出错,不允许我这样做

我是否必须在迁移中创建关系,在迁移中我说数据库中的外键是什么,或者是否有其他方法只使用Laravel模型


我是新来的。多谢各位

您需要删除并停用外键检查,也就是说,我正在使用以下函数来完成此操作。首先,我将外键检查设置为0,然后截断表并将其设置回1。将外键检查设置为0允许截断表,即使存在外键

# functions to truncate users table even if there are foreign key
public static function truncateUserTable()
{
    DB::statement('SET FOREIGN_KEY_CHECKS=0');
    User::query()->truncate();
    DB::statement('SET FOREIGN_KEY_CHECKS=1');
}

美好的谢谢。@SeadOrdagić请记住,这将使您的数据处于引用不存在外键的不一致状态。除非您确定这是您需要的,否则不要这样做。您也可以使用
Schema::enableForeignKeyConstraints()和模式::disableForeignKeyConstraints()
@apokryfos如果他这样做是为了测试或类似的目的,我认为这很好,因为它再次将外键检查设置为1