diff --git a/src/Application/Form/Type/LinkableType.php b/src/Application/Form/Type/LinkableType.php index 676761038181abe0f3ea615e7d88eebaee25d91c..0e677ae3cf55463ac0a2a145844185dae2fa2b4c 100644 --- a/src/Application/Form/Type/LinkableType.php +++ b/src/Application/Form/Type/LinkableType.php @@ -34,7 +34,7 @@ class LinkableType extends AbstractType 'multiple' => true, 'expanded' => false, 'by_reference' => false, - 'query_builder' => function (EntityRepository $er) use ($object, $orderField) { + 'query_builder' => function (EntityRepository $er) use ($object, $orderField, $class) { $collectivity = null; if (!\is_null($object) && $object instanceof CollectivityRelated && !\is_null($object->getCollectivity())) { $collectivity = $object->getCollectivity(); @@ -51,9 +51,15 @@ class LinkableType extends AbstractType } elseif ($orderField) { $qb->addOrderBy('c.' . $orderField, 'asc'); } + if ($object instanceof $class) { + // self referencing, remove current object from query + $qb->andWhere('c != :self') + ->setParameter('self', $object) + ; + } if ($collectivity) { return $qb - ->where('c.collectivity = :collectivity') + ->andWhere('c.collectivity = :collectivity') ->setParameter('collectivity', $collectivity) ; }