Archived post from my old blog (2007–2016), restored from the Wayback Machine. It is published as written at the time, in Italian; tools and versions are likely out of date.

Entities passed to the choice field must be managed

  • php
  • symfony
  • doctrine
  • entities-managed
  • symfony2

Symfony delle volte riesce ad essere snervante
Ho appena perso un bel po’ di tempo per risolvere questa eccezione
Sostanzialmente ho creato una classe Tag che ha una proprietà $parentTag che è sempre un’istanza di Tag, punta alla colonna id della stessa tabella e così via
Tutto mappato su Doctrine tramite annotazioni

Ho sistemato il form e tutto viene renderizzato bene, le nuove entità vengono create.
Il problema era nell’edit e update. Continuava a saltare fuori l’errore di cui sopra, ma solo per quelle che avevano la proprietà popolata

Ho aggiunto questo snippet prima che il form venga passato al vaglio nei metodi update e edit del controller

....
        if (!$entity) {
            throw $this->createNotFoundException('Unable to find Tag entity.');
        }
        if($entity->getParentTag()!=null){
        $m = $em->merge($entity->getParentTag());
        $entity->setParentTag($m);
        $entity = $em->merge($entity);
        }
....

e questo ha risolto il problema
One more down, on with the war ….

Grazie a Marco Pivetta per avermi messo sulla giusta strada con una sua risposta nel gruppo di symfony

← Archive