symfony: Können wir kein verstecktes Entitätsfeld haben?

Ich rendere ein Formular mit einem Entitätsfeld in Symfony.

Es funktioniert gut, wenn ich ein reguläres Entitätsfeld wähle.

$builder
    ->add('parent','entity',array(
            'class' => 'AppBundle:FoodAnalytics\Recipe',
            'attr' => array(
                'class' => 'hidden'
            )
        ))

Es gibt den folgenden Fehler aus, wenn ich -> add ('parent', 'hidden') wähle:

s wird erwartet, dass die Anzeigedaten des Formulars vom Typ Skalar, Array oder eine Instanz von \ ArrayAccess sind, es sich jedoch um eine Instanz der Klasse AppBundle \ Entity \ FoodAnalytics \ Recipe handelt. Sie können diesen Fehler vermeiden, indem Sie die Option "data_class" auf "AppBundle \ Entity \ FoodAnalytics \ Recipe" setzen oder einen View-Transformator hinzufügen, der eine Instanz der Klasse AppBundle \ Entity \ FoodAnalytics \ Recipe in Skalar, Array oder eine Instanz von \ umwandelt. ArrayAccess. 500 Interner Serverfehler - LogicException

Können wir keine ausgeblendeten Entitätsfelder haben? Warum nicht? Muss ich ein weiteres verstecktes Feld einfügen, um die Entitäts-ID abzurufen?

EDIT:

rundsätzlich versuche ich, das Formular vor dem Anzeigen zu hydrieren, aber den Benutzer daran zu hindern, eines seiner Felder (hier das übergeordnete Feld) zu ändern. Dies liegt daran, dass ich die ID als Parameter übergeben muss und dies in der Formularaktions-URL nicht tun kann.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage