Хобрук: Ваш путь к мастерству в программировании

Обновление объектов, измененных с помощью DoctrineExtensions Sortable

У меня есть прослушиватель PreUpdate, в котором я меняю версию записи. У меня есть собственная система управления версиями (просто целочисленное поле с номером версии, которое увеличивается до самого высокого + 1 при изменении объекта).

Поэтому, если я что-то меняю, версия увеличивается. Я также использую DoctrineExtensions Sortable. Проблема в том, что я должен изменить версию для всех сущностей, где изменена позиция.

Например, если я изменяю позицию сущности на 4, я даю этой сущности новую версию (скажем, 22). И при этом у пяти других сущностей меняется положение (например). Так что также для этих пяти объектов я должен изменить версию на 22. Есть идеи, как добиться этого без бесконечного цикла, созданного событием PreUpdate?


Ответы:


1

Если вы используете \Knp\DoctrineBehaviors, вам, вероятно, следует использовать особенности репозитория Knp внутри вашего класса репо:

use \Knp\DoctrineBehaviors\ORM\Sortable\SortableRepository; 

Затем вы можете использовать reorderEntity/() в вашем updateAction(), createAaction()

 //reorder..
 $em->getRepository('Bundle:Class')->reorderEntity($entity);
23.09.2016
Новые материалы

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

React Hooks: основы деструктуризации массива
Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

Пакеты R, используемые в Tesla
Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

Сокращение и слияние токенов для эффективных моделей VL: обзор
Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..