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

Ребят, сделал поле позиции и алгоритм обновления позиции:

$category = Category::findOrFail($id);

$move = $desiredPosition > $currentPosition ? 'down' : 'up';

$current = $category->display_order;

$newPosition = $category->display_order + ($desiredPosition - $currentPosition);

$category->display_order = 0;

$category->save();

if ($move == 'down') {
Category::where('display_order', '>', $current)
->where('display_order', '<=', $newPosition)
->update(['display_order' => \DB::raw('display_order - 1')]);
} else if ($move == 'up') {
Category::where('display_order', '<', $current)
->where('display_order', '>=', $newPosition)
->update(['display_order' => \DB::raw('display_order + 1')]);
}

Category::where('display_order', 0)
->update(['display_order' => $newPosition]);

оно вып-ся после запроса с jquery sortable. Но тут не учитывается что если display_order идет не подряд, такое может случиться после удаления с БД. Можно ли как то его доработать или придется после удаления смещать?

1 ответов

12 просмотров

если у тебя смещение на 1 позицию просто бери элемент с текущей позицией и элемент который перемещаем, и меняй их позиции. И лучше при удалении пересчитывать позиции

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта