Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 使用DoctrineExtensions Sortable更新更改的实体_Symfony_Doctrine_Doctrine Extensions_Stofdoctrineextensions - Fatal编程技术网

Symfony 使用DoctrineExtensions Sortable更新更改的实体

Symfony 使用DoctrineExtensions Sortable更新更改的实体,symfony,doctrine,doctrine-extensions,stofdoctrineextensions,Symfony,Doctrine,Doctrine Extensions,Stofdoctrineextensions,我有一个更新前的侦听器,可以在其中更改条目版本。我有自己的版本控制系统,只是一个整数字段,其版本号在实体更改时增加到最高+1 所以,如果我改变某事物,版本就会增加。我还使用DoctrineExtensions排序。问题是,我应该将版本更改为位置更改的所有实体 例如,如果我把实体位置改为4,我会给这个实体一个新的版本,比如说22。举例来说,其他五个实体的地位也发生了变化。因此,对于这五个实体,我应该将版本更改为22。您知道如何在不使用PreUpdate事件进行无限循环的情况下实现这一点吗?如果您使

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

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


例如,如果我把实体位置改为4,我会给这个实体一个新的版本,比如说22。举例来说,其他五个实体的地位也发生了变化。因此,对于这五个实体,我应该将版本更改为22。您知道如何在不使用PreUpdate事件进行无限循环的情况下实现这一点吗?

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

use \Knp\DoctrineBehaviors\ORM\Sortable\SortableRepository; 
然后,您可以在updateAction、createAaction中使用reorderEntity/

 //reorder..
 $em->getRepository('Bundle:Class')->reorderEntity($entity);