【发布时间】:2016-02-13 12:04:06
【问题描述】:
假设我在 app/config/database.php 中有以下数据库设置
'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' => '',
),
),
来自 laravel 的官方指南,有几种方法可以选择使用哪些连接设置。在我需要建立连接时设置它,
$users = DB::connection('mysql2')->select(...);
或在模型中设置:
class SomeModel extends Eloquent {
protected $connection = 'mysql2';
}
就我而言,我为不同的用户复制了具有相同架构的数据库,因此无法在模型中进行设置。有没有办法为同一功能下的所有连接选择连接设置,以便我可以将其放入过滤器/baseController并在运行时设置连接?
【问题讨论】:
标签: php laravel laravel-4 eloquent