定义连接
在你的数据库配置文件里面 – 可能是app / config / database.php。
return array(
'default' => 'mysql',
'connections' => array(
# Our primary database connection
'mysql' => array(
'driver' => 'mysql',
'host' => 'host1',
'database' => 'database1',
'username' => 'user1',
'password' => 'pass1'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Our secondary database connection
'mysql2' => array(
'driver' => 'mysql',
'host' => 'host2',
'database' => 'database2',
'username' => 'user2',
'password' => 'pass2'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
模式
在Schema Builder中,您可以使用架构外观与任何连接。要指定要使用的连接,只需运行connection()方法:
Schema::connection('mysql2')->create('some_table', function($table)
{
$table->increments('id'):
});
查询
与Schema Builder类似,您可以在查询生成器上定义一个连接:
$users = DB::connection('mysql2')->select(...);
雄辩
您还可以定义在您的雄辩模型中使用的连接!
一种方法是在你的模型中设置$ connection变量:
class SomeModel extends Eloquent {
protected $connection = 'mysql2';
}
您还可以通过setConnection方法在运行时定义连接
class SomeController extends BaseController {
public function someMethod()
{
$someModel = new SomeModel;
$someModel->setConnection('mysql2');
$something = $someModel->find(1);
return $something;
}
}
Note Be careful about attempting to build relationships with tables across databases! It is possible to do, but it can come with some caveats and depends on what database and/or database settings you have.