我正在创建一个多租户应用程序,根据子域,我将连接到该特定租户的数据库。
以下是执行此操作的代码:
$smsCode = 7552
这是连接数据库的最佳方式还是存在任何问题,因为我从性能的角度思考,因为每当我在有不同的子域时与数据库连接时。最好的方法是什么?
答案 0 :(得分:1)
这几乎是最好的方法。最后,无论如何,这都是意见。但是,我会在配置文件中为每个子域创建一个连接。然后,在connectSubdomainDatabase()函数中,我将获取当前子域而不是传递数据库名称。您已经可以在laravel中指定连接,唯一应该使用数据库名称的位置在配置文件中。
所以,像这样:
'connections' => [
'subdomain1' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'subdomain2' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
],
config / database.php连接的位置是:
{{1}}