一位同事(最近离职)已在我正在使用的网站上安装了Laravel Passport,该网站使用SQL Server,并在默认的dbo架构中创建了各种oauth_表。
但是,我们的数据库有许多模式,具体取决于表的用途,包括“安全性”,其中包含与auth内容相关的所有表。
我被要求进行更改,因此表格处于安全状态而不是dbo,但我无法弄清楚如何实现这一点。在护照模型文件中,只指定了一个表名,生成的迁移似乎也没有指定模式的选项。我无法在Passport文档中看到任何内容,以表明它是否可能。
有谁知道是否可以在非默认架构中使用护照?
答案 0 :(得分:1)
您可以在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';