第一步、定义数据库链接

config/database.php

<?php

return [

'default' => 'mysql',

'connections' => [

# 主要数据库连接

'mysql' => [

'driver' => 'mysql',

'host' => 'host1',

'database' => 'database1',

'username' => 'user1',

'password' => 'pass1',

'charset' => 'utf8mb4',

'collation' => 'utf8mb4_unicode_ci',

'prefix' => '',

],

# 第二个链接

'mysql2' => [

'driver' => 'mysql',

'host' => 'host2',

'database' => 'database2',

'username' => 'user2',

'password' => 'pass2',

'charset' => 'utf8mb4',

'collation' => 'utf8mb4_unicode_ci',

'prefix' => '',

]

],

];

第二步、连接第二个数据库

我们已经成功配置了第二个数据库链接,接下来讲解几种连接的方法。

1. Schema 表结构更改

在代码迁移时,可以使用 Schema 提供的 connection() 方法:

Schema::connection('mysql2')->create('some_table', function($table)

{

$table->increments('id'):

});

2. Query 数据库查询

同样的,数据库查询构造器里提供了一个 connection() 方法:

$users = DB::connection('mysql2')->select(...);

3. Eloquent 数据模型

使用 $connection 属性来设置默认的连接:

<?php

class SomeModel extends Eloquent {

protected $connection = 'mysql2';

}

你也可以使用 setConnection 来动态设置连接:

<?php

class SomeController extends BaseController {

public function someMethod()

{

$someModel = new SomeModel;

$someModel->setConnection('mysql2');

$something = $someModel->find(1);

return $something;

}

}

或者使用 on() 方法:

$someModel->on('mysql2')->find(1);