170 похожих чатов

Всем привет. Необходимо вставить, или обновить записи в таблице базы Делал

так, типа ищу user_id, если его нет то создаю
если он есть то обновляю.

$response = \DB::table('Contacts')->updateOrInsert(
[
'user_id' => $Params['user_id'] // ищем user_id = XXX
],
[
'name' => $Params['name'] // создаем/обновляем имя
]
);


Все гуд и так все работает.
тока вопрос, если мне необходимо выполнить такое же для 300 к примеру контактов?

в цикле выполнять запрос к базе - не есть хорошо, как же так бы пакетно все это сделать?

16 ответов

17 просмотров

делай втупую как знаешь, по крайней мере это будет быстрее чем полдня гуглить, скрипт задумается на несколько минут но задача будет сделана

Отличный совет

Роман-Webds Автор вопроса

)) нее я лучше убью время

То, что ты ищешь, гуглится по слову "laravel bulk update", больше ничего не скину, т.к. с телефона)

Роман-Webds Автор вопроса

laravel bulk update ща посмотрю

Роман-Webds Автор вопроса

нашел, в 8-й ларке появился upsert , как бы его на 7-й ларке выполнить

Скопипастить код

чего появилось?

Роман-Webds Автор вопроса

в ларьке 8 нашел то что мне нужно. появился метод там upsert (https://www.amitmerchant.com/insert-or-update-multiple-records-using-upsert-in-laravel8/) тока не совсем понял, это пакет отдельно используется или вшит метод в ларку. Кто его использовал уже? И самый вопрос - как бы мне его использовать в Ларке 7-й

добавить несуществующий метод, который будет иметь доступ ко всему объекту где находится макрос

Роман-Webds Автор вопроса

правильно ли я понял: 1. находим как реализован метод upsert в ларьке 8 2. создаем макрос - куда дописываем необходимый функционал, который в ларьке 8 3. подключаем макрос к ларьке 7 через композер, если много макросов то через класс Миксин

3. в сервис провайдере подключаешь его

Роман-Webds Автор вопроса

ну или так или через композер- я прочитал можно так и так. Сейчас теперь вопрос как бы вытащить полную функциональность по методу upsert

вот что я нагуглил https://gist.github.com/tomcastleman/7285a59ee242f929e0cbe6974bc4b799

гист старый, сравни такой ли синтаксис upsert в новой версии

Роман-Webds Автор вопроса

ага, я понял, сравню сейчас, это уже ктото делал макро я так понимаю

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта