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

How to save laravel model to 2 databases

您好,有没有办法做类似的事情:

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

Change database connection

$model save()

Change back.

我知道您可以通过手动查询来完成

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

MYSQL 复制不是即时的 提前谢谢

我实际上从未尝试过,但使用您模型的 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();

我找到了最简单的方法。

public function saveMultipleDatabases($db)
{
    Config::set('database.default', $db);

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