How to use multiple database in Lumen

后端 未结 2 1267
我在风中等你
我在风中等你 2021-02-04 18:38

We\'ve using Lumen for building API\'s , Now we need to access multiple databases.

Currently using .env for database config but unable to found the way to m

相关标签:
2条回答
  • 2021-02-04 18:57

    This also worked. In the current version of Lumen 5.7

    config/database.php

    <?php
    
    return [
    
        'default' => env('DB_CONNECTION', 'sqlsrv'),
        'migrations' => 'migrations',
        'connections' => [
            'sqlsrv' => [
                'driver' => 'sqlsrv',
                'host' => env('DB_HOST', 'localhost'),
                'port' => env('DB_PORT', '1433'),
                'database' => env('DB_DATABASE', 'forge'),
                'username' => env('DB_USERNAME', 'forge'),
                'password' => env('DB_PASSWORD', ''),
                'charset' => 'utf8',
                'prefix' => '',
                'prefix_indexes' => true,
            ],
    
            'sqlsrv2' => [
                'driver' => 'sqlsrv',
                'host' => env('DB_HOST', 'localhost'),
                'port' => env('DB_PORT', '1433'),
                'database' => env('DB_DATABASE2', 'forge'),
                'username' => env('DB_USERNAME', 'forge'),
                'password' => env('DB_PASSWORD', ''),
                'charset' => 'utf8',
                'prefix' => '',
                'prefix_indexes' => true,
            ],
        ],
    ];
    

    .env

    DB_CONNECTION=sqlsrv
    DB_HOST=localhost
    DB_PORT=1433
    DB_DATABASE=database1
    DB_USERNAME=username
    DB_PASSWORD=password
    
    DB_DATABASE2=database2
    

    Usage:

    Model: protected $connection = 'sqlsrv2'; Other: ->connection('sqlsrv2')

    I hope i help you!

    Reference:https://fideloper.com/laravel-multiple-database-connections

    0 讨论(0)
  • 2021-02-04 19:12

    First, you'll need to configure your connections. If you don't already have one you'll need to create a config directory in your project and add the file config/database.php. It might look like this:

    <?php
    
    return [
    
       'default' => 'accounts',
    
       'connections' => [
            'mysql' => [
                'driver'    => 'mysql',
                'host'      => env('DB_HOST'),
                'port'      => env('DB_PORT'),
                'database'  => env('DB_DATABASE'),
                'username'  => env('DB_USERNAME'),
                'password'  => env('DB_PASSWORD'),
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
                'strict'    => false,
             ],
    
            'mysql2' => [
                'driver'    => 'mysql',
                'host'      => env('DB2_HOST'),
                'port'      => env('DB_PORT'),
                'database'  => env('DB2_DATABASE'),
                'username'  => env('DB2_USERNAME'),
                'password'  => env('DB2_PASSWORD'),
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
                'strict'    => false,
            ],
        ],
    ];
    

    Once you've added your connection configurations, you can access them by getting the database manager object out of the container and calling ->connection('connection_name').

    // Use default connection
    app('db')->connection()->select('xx');
    DB::connection()->select('yy');
    
    // Use mysql2 connection
    app('db')->connection('mysql2')->select('xx');
    DB::connection('mysql2')->select('yy');
    

    Hope this helps you!!

    0 讨论(0)
提交回复
热议问题