[英]How to use multiple database in Lumen
We've using Lumen for building API's , Now we need to access multiple databases. 我们使用Lumen构建API,现在我们需要访问多个数据库。
Currently using .env
for database config but unable to found the way to multiple databases in .env
目前使用
.env
进行数据库配置但无法找到.env
多个数据库的.env
where we need to read 2nd connection ... 我们需要阅读第二个连接...
First, you'll need to configure your connections. 首先,您需要配置连接。 If you don't already have one you'll need to create a
config
directory in your project and add the file config/database.php
. 如果您还没有,则需要在项目中创建
config
目录并添加文件config/database.php
。 It might look like this: 它可能看起来像这样:
<?php
return [
'default' => 'accounts',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'mysql2' => [
'driver' => 'mysql',
'host' => env('DB2_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB2_DATABASE'),
'username' => env('DB2_USERNAME'),
'password' => env('DB2_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
],
];
Once you've added your connection
configurations, you can access them by getting the database manager object out of the container and calling ->connection('connection_name')
. 添加
connection
配置后,可以通过将数据库管理器对象从容器中取出并调用->connection('connection_name')
来访问它们。
// Use default connection
app('db')->connection()->select('xx');
DB::connection()->select('yy');
// Use mysql2 connection
app('db')->connection('mysql2')->select('xx');
DB::connection('mysql2')->select('yy');
Hope this helps you!! 希望这对你有所帮助!!
This also worked. 这也有效。 In the current version of Lumen 5.7
在当前版本的Lumen 5.7中
config/database.php 配置/ database.php中
<?php
return [
'default' => env('DB_CONNECTION', 'sqlsrv'),
'migrations' => 'migrations',
'connections' => [
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
],
'sqlsrv2' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE2', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
],
],
];
.env .ENV
DB_CONNECTION=sqlsrv
DB_HOST=localhost
DB_PORT=1433
DB_DATABASE=database1
DB_USERNAME=username
DB_PASSWORD=password
DB_DATABASE2=database2
Usage: 用法:
Model: protected $connection = 'sqlsrv2';
型号:
protected $connection = 'sqlsrv2';
Other: ->connection('sqlsrv2')
其他:
->connection('sqlsrv2')
I hope i help you! 我希望我帮助你!
Reference: https://fideloper.com/laravel-multiple-database-connections 参考: https : //fideloper.com/laravel-multiple-database-connections
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.