我在 Laravel 应用程序中工作,其中有一个随时间变化的数据库,
它可能被称为
20042018
今天和
21042018
明天 我知道如何计算它的名称,我只是不知道在哪里添加脚本来查找数据库名称。
我必须在模态中执行此操作吗?或者在我应该设置动态数据库的地方是否有构造函数?
在我的 database.php 文件中,我想包含这个数据库,但是我怎样才能动态地将这个数据库添加到我在 database.php 中的驱动程序中呢?
最佳答案
可以在你的AppServiceProvider.php
注册函数中设置:
public function register()
{
$db = 2104018; // calculate the name
config(['database.connections.mysql' => [
'driver' => 'mysql',
'host' => config('database.connections.mysql.host'),
'database' => $db,
'username' => config('database.connections.mysql.username'),
'password' => config('database.connections.mysql.password'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]]);
}
或者另一种方法是在 app/helpers.php
中创建一个辅助函数,将其添加到 "autoload"下的
并从 composer.json
中:{ "files": ["app/helpers.php"] }database.php
配置文件中调用它:
// app/helpers.php
if (!function_exists('calculate_db_name')) {
function calculate_db_name() {
$db = 12345; // do the thing...
return $db;
}
}
// config/database.php
'mysql' => [
...
'database' => calculate_db_name()
...
]
关于database - Laravel 加载数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51318703/