【发布时间】:2017-06-21 16:14:05
【问题描述】:
我想在我当前的 laravel 数据库中存储多个数据库连接。 我需要通过下拉列表连接这些并即时生成报告。 最好的配置方法是什么
【问题讨论】:
标签: laravel
我想在我当前的 laravel 数据库中存储多个数据库连接。 我需要通过下拉列表连接这些并即时生成报告。 最好的配置方法是什么
【问题讨论】:
标签: laravel
您可以在第一个数据库中创建一个表“connection(strings)”并为该表创建一个模型。
之后你可以这样做:
$selected = Connection::query()->where('name', 'fromdropdown')->first();
$connection = $selected;
config(['database.connections.data' => array(
'driver' => 'sqlsrv',
'host' => $connection['Database_Server'],
'database' => $connection['Database_Name'],
'username' => $connection['Database_User'],
'password' => $connection['Database_Pass']
)]);
DB::setDefaultConnection('data');
【讨论】:
您可以在app/config/database.php 文件中设置多个数据库连接。
例子:
'default' => 'mysql',
'connections' => array(
# Our primary database connection
'mysql' => array(
'driver' => 'mysql',
'host' => 'host1',
'database' => 'database1',
'username' => 'user1',
'password' => 'pass1'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Our secondary database connection
'mysql2' => array(
'driver' => 'mysql',
'host' => 'host2',
'database' => 'database2',
'username' => 'user2',
'password' => 'pass2'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
)
然后只需在查询中使用连接名称:
$users = DB::connection('mysql2')->select(...);
【讨论】: