TrueDrago
@TrueDrago

Сортировка сущностей в Doctrine 2?

Для последнего проекта я создал сущность, которая должна поддерживать сортировку. Добавил для неё по инструкции Sortable behavior, но появилась следующая проблема. Помимо геттеров и сеттеров позиции мне нужны следующие методы:

<?php<br>
public function moveUp() {<br>
    ++$this->position;<br>
}<br><br>
public function moveDown() {<br>
    if($this->position != 0)<br>
        --$this->position;<br>
}<br>


С сдвигом вниз в принципе всё понятно — ниже нуля оно не будет двигаться. Но как быть с максимальными позициями? Насколько я понял, делать напрямую из сущности запросы к бд, чтобы определить максимальное значение — не лучшее архитектурное решение. Как тогда запретить инкрементировать элемент с максимальной позицией?
  • Вопрос задан
  • 3416 просмотров
Пригласить эксперта
Ответы на вопрос 2
JekaRu
@JekaRu
Если мне память не изменяет, там кажется не имеет особого смысла это делать, все автоматом пересчитывается при сохранении.
Вам точно надо ограничивать максимальное значение?
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ну мне кажется не слишком удобная реализация. Ибо…
a — 1
b — 2
c — 3

если сделать c.moveUp()

a — 1
b — 2
c — 2

И уже сложно будет пересчитать, вы так не считаете?

А вообще все что связано с манипулированием данными перед сохранением, будь то пересчет порядка сущьностей или хэширование паролей, должно выполняться в листенерах (это только мое мнение, и да, этот способ работает не всегда)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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