laravel 多数据库查询

laravel4.1 控制器构造函数,动态修改数据库配置即可

1
2
3
4
5
6
$this->dbConfig = Config::get('database.connections.mysql');
$this->dbConfig['database'] = '需要的数据库名称';
$this->dbConfig['prefix'] = '表前缀';
// dd($this->dbConfig);
Config::set('database.connections.mysql',$this->dbConfig);
$this->db = DB::reconnect("mysql");

使用方式

1
2
3
4
$this->db->table('article_category')
->select($fields)
->where('parent_id','5')
->orderBy('sort','asc')->get();

这种方法需要重新链接,较为麻烦。也可以用另一种方法

在默认控制器中,Http/Controllers/Controller.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 基础类做默认配置
public function __construct(Request $request)
{
// 根据应用id切换数据库

if ($request->has('app_id')) {
\Config::set("database.connections.mysql", [
'driver' => 'mysql',
'port' => '3306',
"host" => "10.11.0.220",
"database" => "cdr_{$request->input('app_id')}",
"username" => "root",
"password" => "密码",
'prefix' => 'sq_',
]);
}
}

这样修改修改默认数据库配置