LUMEN框架多数据库连接配置方法

LUMEN作为一款API导向很浓的框架,配置极简化,默认只支持一路DB配置

然而随着业务复杂度的提高,引入多个数据库连接似乎无法避免,下面介绍一下LUMEN连接多个数据库的配置方法:

  • 修改.env文件,增加新DB配置,如下:
//DB1 配置

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=dbname

DB_USERNAME=dbname

DB_PASSWORD=password

DB_TIMEOUT=4

//DB2配置

DB_TEST_CONNECTION=mysql

DB_TEST_HOST=127.0.0.1

DB_TEST_PORT=3307

DB_TEST_DATABASE=dbname2

DB_TEST_USERNAME=dbname2

DB_TEST_PASSWORD=password

DB_TEST_TIMEOUT=4
  • 因为LUMEN在加载DB配置时,还是会默认去laravel模块下寻找相关配置文件,这时修改laravel模块下的database.php文件
    文件位置在:
    ./vendor/laravel/lumen-framework/config/database.php
    添加.env文件中新增的DB配置,如下:
//默认配置
        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'port'      => env('DB_PORT', 3306),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => env('DB_CHARSET', 'utf8'),
            'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
            'prefix'    => env('DB_PREFIX', ''),
            'timezone'  => env('DB_TIMEZONE', '+00:00'),
            'strict'    => env('DB_STRICT_MODE', false),
        ],

//新增配置
        'mysql_test'=>[
            'driver'    => 'mysql',
            'host'      => env('DB_TEST_HOST', 'localhost'),
            'port'      => env('DB_TEST_PORT', 3306),
            'database'  => env('DB_TEST_DATABASE', 'forge'),
            'username'  => env('DB_TEST_USERNAME', 'forge'),
            'password'  => env('DB_TEST_PASSWORD', ''),
            'charset'   => env('DB_CHARSET', 'utf8'),
            'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
            'prefix'    => env('DB_PREFIX', ''),
            'timezone'  => env('DB_TIMEZONE', '+00:00'),
            'strict'    => env('DB_STRICT_MODE', false),
        ],

  • 在项目中调用时,直接按database.php中的做法初始化connection就行,如下:
$query = app('db')->connection("mysql_test")->select("...");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 12,724评论 0 121
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,293评论 19 139
  • 校园失物招领平台开发 ——基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大、人群活...
    蓝莲花xzsky阅读 11,369评论 8 54
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 11,776评论 3 64
  • 阳春三月,正是各种花卉盛开的时节,趁着周末休息的日子,约上三五好友去郊外踏青春游,一边赏景一边拍照,把美好留住永存...
    五月的荷阅读 3,269评论 1 3