第一步、定義數據庫鏈接
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);
————————————————
原文作者:Summer
轉自鏈接:https://learnku.com/laravel/wikis/16106
版權聲明:著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請保留以上作者信息和原文鏈接。
