Изменение порядка предметов в Laravel - PullRequest
0 голосов
/ 14 мая 2018

У меня есть 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 вместо этого?Любые альтернативы, кто-нибудь?

1 Ответ

0 голосов
/ 14 мая 2018

Ваш код без необходимости извлекает все проекты перед их обновлением.Используйте это:

Project::whereKey($id)->update(['order' => $order++]);

Если это не слишком сложно, то только обновление перемещенных проектов звучит как хорошая альтернатива.

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