Laravel 5在控制器中更改数据库名称

时间:2016-08-24 06:05:42

标签: php database laravel sqlsrv

ERS。我需要将数据库名称更改为特定的控制器。我已将database.php更改为此

'sqlsrv' => [
        'driver'   => 'sqlsrv',
        'host'     => env('DB_HOST', 'loal'),
        'database' => env('DB_DATABASE', 'test1'),
        'username' => env('DB_USERNAME', ''),
        'password' => env('DB_PASSWORD', ''),
        'charset'  => 'utf8',
        'prefix'   => '',
    ],
    'sqlsrv2' => [
        'driver'   => 'sqlsrv',
        'host'     => env('DB_HOST', 'local'),
        'database' => env('DB_DATABASE', 'test2'),
        'username' => env('DB_USERNAME', ''),
        'password' => env('DB_PASSWORD', ''),
        'charset'  => 'utf8',
        'prefix'   => '',
    ],

我的主数据库是test1,我需要在这里将其更改为test2 db name:

 public function TransactionHistory(Request $request){

    Config::set('database.default','sqlsrv2');

    dd(DB::connection() );
}

但它只返回null并且仍在阅读测试1.任何人?

1 个答案:

答案 0 :(得分:3)

一种方法是使用DB::connection()方法更改连接:

$connection = DB::connection('sqlsrv2'); //this will create a database connection using sqlsrv2 in your config.

现在,您可以使用$connection来运行查询等。

Reference