一位同事(最近离开)在我现在工作的网站上安装了 Laravel Passport,该网站使用 SQL Server,并在默认 dbo 模式中创建了各种 oauth_ 表。
但是,我们的数据库有许多模式,具体取决于表的用途,包括“安全”,其中包含与身份验证相关的所有表。
有人要求我进行更改,以便表处于安全状态而不是 dbo,但我不知道如何实现这一点。在护照模型文件中,只指定了一个表名,生成的迁移似乎也没有指定模式的选项。我在 Passport 文档中看不到任何内容来表明这是否可行。
有谁知道是否可以在非默认架构中使用护照使用表?
最佳答案
那么你可以在你的database.php
配置文件下配置不同的连接和不同的模式,然后在你的模型中指定$connection
,例如:
'sqlsrv1' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'schema' => 'schema_name1',
],
'sqlsrv2' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'schema' => 'schema_name2',
],
然后在所需模型中设置$connection
属性
protected $connection = 'sqlsrv1';
关于php - 更改 Laravel Passport 使用的 SQL Server 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46562353/