我尝试在 Slim 框架应用程序中向 Eloquent 添加更多数据库连接。
我这样做:
$app = new \Slim\App([
'db' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'products',
'username' => 'user',
'password' => 'pass',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
],
'db_second' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'second',
'username' => 'user',
'password' => 'pass',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
],
]);
$container = $app->getContainer();
// connect to db with Illuminate larvel
$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($container['settings']['db']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
/// END connect to db
// to accsess the $capsule with our container from our controllers
$container['db'] = function($container) use ($capsule){
return $capsule;
};
现在我不知道如何向设置中的 db_second
配置添加另一个连接。
我应该如何在模型中使用这个连接?
最佳答案
如果有人需要,我找到了答案:
// connect to db with Illuminate larvel
$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($container['settings']['db']);
$capsule->addConnection($container['settings']['db_second'], '**db_second**');
$capsule->setAsGlobal();
$capsule->bootEloquent();
/// END connect to db
在我放入的模型文件中:
protected $connection = '**db_second**';
我在要在 addConnection 和模型中使用的名称中输入 ** 需要同名。
关于php - Eloquent 中的多个数据库连接与 slim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45798770/