2016-12-14 176 views
3

我需要创建多个连接来访问不同的数据库/模式。不能使用一个dbconnection。有没有办法在laravel雄辩或db生成器中传递数据库名称?目前在原始的PHP我使用一个连接来查询不同的架构。LARAVEL雄辩的查询多模式

回答

3

创建与您的database.php文件不同的连接,然后将它们传递给您的雄辩模型。

'mysql1' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db1', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

// connection 2 
'mysql2' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db2', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

假设我有模型user.php的使用我的模型内名为MySQL连接mysql1

我会添加:

protected $connection = 'mysql1'; 

如果我想使用一个名为MySQL连接mysql2 然后我会使用

protected $connection = 'mysql2'; 

在这里,我将静态连接设置为mod ELS。

+0

非常感谢信息 – Arav

+0

很高兴帮助! –

1

雄辩,我使用DB:连接()来设置我的命名连接,就像这样:

 $query = DB::connection('db_connection_name')->table($this->table) 

如果你不知道,数据库连接在配置应用程序/配置/数据库命名.php

+0

非常感谢信息 – Arav