我想在我当前的laravel db中存储多个数据库连接。 我需要通过下拉列表连接这些并动态生成报告。 配置此
的最佳方法是什么答案 0 :(得分:1)
你可以创建一个表"连接(字符串)"在你的第一个数据库中,为该表创建一个模型。
之后你可以这样做:
$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');
答案 1 :(得分:0)
您可以在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(...);