【发布时间】:2015-05-23 18:50:22
【问题描述】:
我正在使用带有 Eloquent 4.1.x 的 Slim 框架作为项目的 ORM,并且需要连接到多个数据库。
我按照link 设置了 ORM。但是如何按照给定的教程连接到多个数据库?
在我的模型中,我有不同的文件用于不同数据库中的不同表。
就像User.php文件有以下内容,
<?php
namespace Service\Framework\Model;
use Illuminate\Database\Eloquent\Model;
class Users extends Model {
protected $table = 'users';
}
该类使用 db_2 数据库中的 users 表。我想在这个类的一个方法中从默认数据库 db_1 切换。喜欢,
<?php
namespace Service\Framework\Model;
use Illuminate\Database\Eloquent\Model;
class Users extends Model {
protected $table = 'users';
public function getUsers() {
// Switch the database to db_2
$users = self::all();
// Again switch back to default database db_1
return $users;
}
}
我该怎么做?请帮我提些建议。
P.S:我这里没有使用 Capsule。
编辑 #1 所以我用来设置单个连接的代码如下,
$settings = array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'db_1',
'username' => 'dbuser',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => ''
);
// Bootstrap Eloquent ORM
$container = new Container();
$connFactory = new ConnectionFactory($container);
$conn = $connFactory->make($settings);
$resolver = new ConnectionResolver();
$resolver->addConnection('default', $conn);
$resolver->setDefaultConnection('default');
Model::setConnectionResolver($resolver);
【问题讨论】:
标签: orm eloquent slim multiple-databases