0

我有一个 PreUpdate 监听器,可以在其中更改条目版本。我有自己的版本控制系统(只是一个整数字段,其版本号在实体更改时增加到最高+1)。

所以如果我改变某事,版本就会增加。我也使用 DoctrineExtensions Sortable。问题是我应该将版本更改为位置更改的所有实体。

例如,如果我将实体位置更改为 4,我会给这个实体一个新版本(比如说 22)。并且随着这五个其他实体的位置发生变化(例如)。因此,对于这五个实体,我也应该将版本更改为 22。知道如何在没有 PreUpdate 事件产生的无限循环的情况下实现这一点吗?

4

1 回答 1

0

如果您使用的是 \Knp\DoctrineBehaviors,您可能应该在您的 repo 类中使用 Knp 的存储库特性:

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

然后你可以在你的 updateAction(), createAaction() 中使用 reorderEntity/()

 //reorder..
 $em->getRepository('Bundle:Class')->reorderEntity($entity);
于 2016-09-23T15:10:34.443 回答