第一步、定义数据库链接
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);