LARAVEL Eloquent查询多个模式

时间:2016-12-14 03:11:35

标签: laravel laravel-5.2

我是否需要创建多个连接才能访问不同的数据库/架构。我不能使用一个dbconnection。有没有办法在laravel eloquent或db builder中传递数据库名称?目前在原始的PHP我使用一个连接来查询不同的架构。

2 个答案:

答案 0 :(得分:5)

创建与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使用名为mysql1的mysql连接

在我的模型中,我将添加:

protected $connection = 'mysql1'; 

如果我想使用名为mysql2的mysql连接 然后我会用

protected $connection = 'mysql2'; 

这里我将静态设置为模型。

答案 1 :(得分:2)

在Eloquent中,我使用DB:connection()来设置我的命名连接,如下所示:

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

如果您不知道,数据库连接在config app / config / database.php中命名