Formulaire Symfony2 Entité De Mise À Jour

Quelqu'un peut-il svp me montrer un exemple d'un formulaire Symfony2 entité de mise à jour? L'ouvrage montre comment créer une nouvelle entité. J'ai besoin d'un exemple de comment mettre à jour une entité existante, où j'ai d'abord passer l'id de l'entité sur la chaîne de requête.

Je vais avoir du mal à comprendre comment accéder au formulaire de nouveau dans le code qui vérifie pour un post sans re-création du formulaire.

Et si je dois recréer la forme, cela signifie que je dois aussi faire la requête pour l'entité de nouveau, ce qui ne semble pas faire beaucoup de sens.

Voici ce que j'ai actuellement, mais cela ne fonctionne pas car il remplace l'entité lorsque le formulaire est affiché.

public function updateAction($id)
{
    $em = $this->getDoctrine()->getEntityManager();
    $testimonial = $em->getRepository('MyBundle:Testimonial')->find($id);
    $form = $this->createForm(new TestimonialType(), $testimonial);

    $request = $this->get('request');
    if ($request->getMethod() == 'POST') {
        $form->bindRequest($request);

        echo $testimonial->getName();

        if ($form->isValid()) {
            //perform some action, such as save the object to the database
            //$testimonial = $form->getData();
            echo 'testimonial: ';
            echo var_dump($testimonial);
            $em->persist($testimonial);
            $em->flush();

            return $this->redirect($this->generateUrl('MyBundle_list_testimonials'));
        }
    }

    return $this->render('MyBundle:Testimonial:update.html.twig', array(
        'form' => $form->createView()
    ));
}
  • Cela ressemble à du code que j'ai utiliser pour éditer les entités existantes. Pouvez-vous être un peu plus clair au sujet de votre problème? Je suis confus au sujet de ce que vous entendez par " ... ne fonctionne pas car il remplace l'entité...'
  • La deuxième ligne dans la fonction qui attrape le témoignage essaie de faire une recherche basée sur le $id passé en. Il ne trouve pas lorsque le message arrive et donc renvoie la valeur null $témoignage. J'ai juste essayé de changer mon code pour le champ caché dans mon formulaire nommé " id " quand le poste se produit. Qui semblait me chercher un peu plus loin, mais alors il s'est plaint de l'id dans mon entité privée et m'a suggéré de créer un setId() la méthode dans mon entité. Apparemment, la console n'a pas en créer un pour moi pour une raison quelconque.
  • Ai eu de travail. Voir mise à jour dans le post ci-dessus.
  • Jeremy, auriez-vous l'esprit la mise de votre "mise à jour" de la section dans une nouvelle réponse et l'accepter. Puis, cette question ne sera pas répertorié sous sans réponse 🙂
InformationsquelleAutor Jeremy Hicks | 2011-07-07