Как я могу сделать массовую вставку с другим соединением в Laravel? - PullRequest
0 голосов
/ 07 сентября 2018

Я использую Laravel 5.6, и я пытаюсь вставить большую часть данных, как это

Model::insert($BulkOfData);

Но моя проблема в том, что я хочу вставить эти данные в другое соединение статически, чтобы что-то подобное

Model::setConnection('connection')->insert($BulkOfData);

Как я могу это сделать

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Вы можете установить соединение в вашей модели, добавив переменную $connection вверху, например:

protected $connection = 'connection';

Тогда вы можете использовать простую вставку:

Model::insert($BulkOfData);

Иначе, если вы хотите изменить соединение на лету, вы можете использовать метод on(), например:

Model::on('connection')->insert($BulkOfData);
0 голосов
/ 07 сентября 2018

setConnection не является статическим методом. Вы можете использовать экземпляр модели:

(new Model)->setConnection('connection')->insert(...);

Методы, такие как вставка, могут вызываться статически, потому что они не определены в Model, поэтому он прибегает к логике __callStatic, которая вызывает метод insert () в построителе запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...