У меня есть projects
таблица, и у каждого проекта есть поле order
, которое является целым числом.
И я использую это поле, чтобы переупорядочить проекты вручную в базе данных в основном.В Frontend я использую библиотеку sortable.js
и после простого перетаскивания я десериализирую массив проектов, и он дает мне вновь упорядоченный массив id
s.
. После каждой капли он вызывает Backend.и передает этот массив.Затем в Backend я делаю что-то вроде
$order = 1;
foreach($ids as $id) {
Project::find($id)->update(['order' => $order++]);
}
. На данный момент все работает нормально, но список projects
скоро будет около 600+ (сейчас это всего около 30) иЯ боюсь, что это станет проблемой по мере роста списка проектов.Мне было интересно, что может быть альтернативным решением для этого?
И так как событие запускается onDrop
, некоторые пользователи могут найти приятным переместить вещи вокруг и затем положить их обратно (есть хорошая анимация при отбрасываниипункт), и они будут запускать много ненужных повторных заказов в основном.
И это должно быть onDrop
, так же, как форма настроена в данный момент.
СледуетЯ пытаюсь вычислить, какие предметы были перемещены на FE вместо этого?Любые альтернативы, кто-нибудь?