database - Laravel 加载数据库

标签 database laravel dynamic

我在 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/

相关文章:

forms - 如何在 Coldfusion CFC 内声明动态表单字段默认值?

javascript - 我应该在一些操作后关闭 Mongo 连接吗?

c# - 如何在从数据库绑定(bind)的复选框列表中查找选定的项目

mysql - 数据库 : what design to point on two possibilities?

sql - 在 PostgreSQL 中索引空值

Laravel:不同表的多个计数

laravel - 通过 Forge 增加 upload_max_filesize

php - Laravel Entrust,如何将现有权限附加到角色

c - 如何在 C 中使用动态矩阵

javascript - 使用 JavaScript 替换动态字符串值