Это свой родом прослеживание вопроса отнесколько аренды в Laravel красноречивого ORM
Forcing Eloquent models to re resolve database connection
С несколькими соединениями баз данных:
return [
'default' => 'mysql-key1',
'connections' => [
'mysql-key1' => [
'driver' => 'mysql',
'database' => 'key1_dbname,
// etc
],
'mysql-key2' => [
'driver' => 'mysql',
'database' => 'key2_dbname',
// etc
]
]
];
у меня есть хранилище продукта, который использует модель setConnection для изменить атрибут подключения:
public function setConnection($name) {
// assumes $this->product is your Product model
$this->product->setConnection($name);
}
Тем не менее, я обнаружил, что он работал только на методы запросов, а не методы, как модели :: создать ::
$productRepo = new ProductRepository();
foreach ($array as $key => $value) {
$productRepo->setConnection($key . '_' . $database);
// this works
$products = $productRepo->all();
// this doesn't work and will use the old connection
$product = $productRepo->create($data);
}
Кажется, что :: создать метод не разрешает соединение один раз экземпляр был создан. Кто-нибудь знает исправление?
Еще раз спасибо @patricus за ответы. на ваш взгляд, как вы думаете, исходный исходный код должен попытаться разрешить соединение перед вызовом save() в методе create? – yulun