2017-10-04 46 views
2

一位同事(最近已离开)在我正在使用SQL Server的网站上安装Laravel Passport,并在默认dbo架构中创建各种oauth_表。更改哪个SQL Server架构Laraval Passport使用

但是,根据表的用途,我们的数据库有许多模式,其中包括所有与auth相关的表的“安全性”。

我被要求进行更改,以便表中的安全不是dbo,但我无法弄清楚如何实现这一点。在护照模型文件中仅指定了一个表名,并且生成的迁移似乎也没有指定模式的选项。我无法看到Passport文档中的任何内容,以表明它是否可能。

有谁知道是否有可能在非默认架构中使用护照表?

+0

看在这个[线程](https://github.com/laravel/passport/issues/118)的末尾有一个解决方案:) – Maraboc

回答

0

那么你可以在你的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'; 
+0

谢谢,我会给你一个去。当然,我无法更改Passport模型文件,但我猜如果我将主连接默认为安全模式,并且第二个连接默认为dbo,然后在抽象基础模型中将$ connection设置为次级,它应该工作。 –

+0

祝你好运!告诉我们你的结果。也许你可以覆盖(通过发布之前)的Passport模型,并做到这一点更容易。 – aaron0207