Привет всем! Нужно реализовать следующее - два юзера одновременно вносят

правки в одну и ту же таблицу в БД. В таблице несколько полей. Если редактируемые поля пересекаются, тогда срабатывает что-то типа optimistic lock, если не пересекаются, то изменения просто мержатся, т.е. и первый юзер, и второй (в теории - и третий, и четвертый и фиг знает какой) спокойно сохраняют изменения.
Просто делать через optimistic lock не вариант, потому что он сравнивает одно поле. Мне же нужно сравнить, какие стобцы изменяются, совпадают ли они у разных юзеров...
Пробовала вариант получить значения $model->getOldAttributes(); сразу после открытия формы, потом получить то же самое перед сохранением формы и сравнить оба массива через array_diff(). Ничего не дало. Кто-нибудь знает, куда копать?

3 ответов

13 просмотров

Ну не совсем понял задачу, зачем сравнивать данные?)

Одновременно вносят правки - вот прям одновременно?

Делаеш так 1. все изменения не вносиш как изменения , а вносиш в таблиц HISTORY как новые записи 2. Делаеш отдельно процес которые это мерджит

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

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

Всем привет. Подскажите, почему не меняется значение поля при переключении сайта?
Alexander Peterikov
11
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
привет, а расскажите как бэкапите свой vault raft cluster CE? я немного почитал и понял, что нужно как-то выполнять vault operator raft snapshot save backup.snapshot подсовыва...
[DBST] Dmitry Knyazev
5
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Всем привет! Напишите пожалуйста, кто мог бы оффлайн преподавать некоторые курсы по Odoo в Алматы в одном из ВУЗов? Мы сейчас вместе с Odoo запускаем университетскую программу...
Adil Dauletkhan
2
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
Карта сайта