如何将 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()
}
您好,有没有办法做类似的事情:
$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()
}