提问者:小点点

如何将laravel模型保存到两个数据库


嗨,有没有一种方法可以像这样做:

$model->name = 'newname'
$model -> save()

Change database connection

$model save()

Change back.

我知道你可以通过手工查询来完成

DB::Conection(conectio1)->update($SQLString)
DB:Coneection(conection2)->update($SQLString)

MYSQL复制不是预先即时的thnx


共2个答案

匿名用户

实际上我从未尝试过,但是使用模型的setConnection()方法应该是可能的。

$model->setConnection('connection2');

但是您必须在更改原始模型实例之前复制模型,因为否则它将无法识别具有相同值的相同属性的更改(如果它们与您以前使用的值没有区别的话)。

$model2 = $model
    ->replicate()
    ->setConnection('connection2');

$model->name = 'name';
$model->save();

// You need the replicated model here because if you used the same model
// with a different connection the model can not say that `name` has changed
// because the value hasn't changed.
$model2->name = 'name';
$model2->save();

匿名用户

我找到了最简单的方法。

公共函数saveMultipleDatabases($dB){

config::set('database.default','$db');

$model->name='newname'$model-> 保存()

}