无法在laravel中设置多个连接

时间:2017-03-28 13:39:27

标签: php laravel-5

我想在Laravel应用程序中设置多个连接。

我尝试使用database.php是:

'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'reports_db'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'pass'),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],
     'mysql1' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'a2z'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'root'),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],
],

和.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=reports_db
DB_USERNAME=root
DB_PASSWORD=pass


CL_DB_CONNECTION=mysql1
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=a2z
DB_USERNAME=root
DB_PASSWORD=root

内部控制器

 public function index()
    {
        $ad= new Ad;

        $ad->setConnection('mysql1');
        $ad =  ad::get();
        echo $job;
      }

但是我无法设置mysql1连接。你能告诉我如何实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

实际上,您在数据库中使用相同的env值时实际使用相同的连接参数。

您的.env文件应包含以下内容:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=reports_db
DB_USERNAME=root
DB_PASSWORD=pass


TWO_DB_CONNECTION=mysql1
TWO_DB_HOST=127.0.0.1
TWO_DB_PORT=3306
TWO_DB_DATABASE=a2z
TWO_DB_USERNAME=root
TWO_DB_PASSWORD=root

和database.php应该是这样的:

'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'reports_db'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'pass'),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],
     'mysql1' => [
        'driver' => 'mysql',
        'host' => env('TWO_DB_HOST', 'localhost'),
        'port' => env('TWO_DB_PORT', '3306'),
        'database' => env('TWO_DB_DATABASE', 'a2z'),
        'username' => env('TWO_DB_USERNAME', 'root'),
        'password' => env('TWO_DB_PASSWORD', 'root'),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],
],