Laravel 5.1:启用 SQLite 外键约束

2022-01-20 00:00:00 foreign-keys php laravel laravel-5 sqlite

在 SQLite 中,外键约束默认禁用.

In SQLite, foreign key constraints are disabled by default.

配置 Laravel 5.1 的 SQLite 数据库连接以启用外键约束的最佳方法是什么?我没有看到这样做的方法['connections']['sqlite']/config/database.php.

What's the best way to configure Laravel 5.1's SQLite database connection to enable foreign key constraints? I don't see a way of doing this in ['connections']['sqlite'] in /config/database.php.

推荐答案

这里有一个解决方案.在里面boot() 方法AppProvidersAppServiceProvider,添加:

Here's one solution. In the boot() method of AppProvidersAppServiceProvider, add:

if (DB::connection() instanceof IlluminateDatabaseSQLiteConnection) {
    DB::statement(DB::raw('PRAGMA foreign_keys=1'));
}

感谢 @RobertTrzebinski 关于 Laravel 的 这篇博文4.

Thanks to @RobertTrzebinski for this blog post regarding Laravel 4.

相关文章