Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.02.2018 11:57:24

Копировать все данные в таблицах с флагом, при добавлении новой записи

Здравствуйте.
У меня в некоторых таблицах есть lang_id. По дефолту он стоит в 1.
Задача в том, что бы при добавлении нового языка, скопировать все имеющиеся записи в базе у которых есть поле lang_id, и заменить на ид только что созданного языка. Это возможно? Подскажить в какую сторону копать.

Не в сети

#2 06.02.2018 14:24:05

Re: Копировать все данные в таблицах с флагом, при добавлении новой записи

Один способ — создать новую таблицу через Schema Builder и сделать что-то вроде:

PHP
INSERT IGNORE INTO new_table SELECT FROM old_table

Потом сделать массовый апдейт lang_id одним запросом.

Или создать таблицу, прочитать старую таблицу в коллекцию или массив, изменить lang_id в этой коллекции с помощью ->transform() и сделать массовую вставку через ->insert($array) одним запросом.

Не в сети

#3 11.02.2018 18:58:17

Re: Копировать все данные в таблицах с флагом, при добавлении новой записи

Спасибо. Попробую сделать так.

Не в сети

Подвал раздела