Model :: create() генерирует исключение при использовании нескольких соединений с базой данных

Каков правильный способ использования Eloquent с несколькими базами данных для вставки новой записи.

Причина наличия нескольких баз данных заключается в том, что на каждом осколке присутствует ограниченное количество пользовательских данных. После аутентификации их осколок просматривается в каталоге, и все дальнейшие запросы производятся на их осколке.

При запуске:

$user = User::on('user-shard1')->create(array('name' => 'John'));

Вызывается следующее исключение:

Call to undefined method Illuminate\Database\Query\Builder::create()

Правильно ли мы реализуем "Красноречивый"?

1 ответ

Вы не можете использовать on для этого, для create статический метод на Model, в то время как on возвращает Eloquent\Builder.

Поэтому вместо этого сделайте следующее:

$user = new User;
$user->setConnection('user-shard1');
$user->fill(array(..));
$user->save();

licensed under cc by-sa 3.0 with attribution.