我有一个网站来处理案件。
我的第一页是一个表格,其中包含基于我的第一个数据库的所有案例,所有案例都在一个表中。
当我选择一个案例时,我将我的 mysql 连接更改为案例的名称。
例如,我连接到案例数据库,当我单击案例 A001 时,我将数据库更改为 A001。
我该如何处理它 拉拉维尔 ?我骑着连接必须在 .env 或数据库.config 中,但我不知道所有案例的名称,会有很多!
如何根据数据库的名称切换数据库?
谢谢
Edit for Erkan Özkök :
我在controler@table中尝试了您的代码,但它不起作用:
// $lots = Lot::on($lot_id)->first();
$connection_name = 'A002';
//firstly, define configurations
Config::set('database.connections.' . $connection_name, array(
'host' => env('DB_HOST', '127.0.0.1'),
'driver' => 'mysql',
'database' => env('DB_DATABASE', $connection_name),
'username' => env('DB_USERNAME', 'root'),
'port' => env('DB_PORT', '3306'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
));
//then activate the connection.
Config::set('database.default', $connection_name);
奖励问题:是否可以在某个时候建立连接并使用它,无论我使用什么功能,或者我每次都必须初始化连接?
当然,您可以动态更改数据库连接。
$connection_name = 'A001';
//firstly, define configurations
Config::set('database.connections.' . $connection_name, array(
'host' => env('DB_HOST', '127.0.0.1'),
'driver' => 'mysql',
'database' => $connection_name,
'username' => 'root',
'port' => '3306',
'password' => '',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
));
//then activate the connection.
Config::set('database.default', $connection_name);