*bump* I'm still stuck here :-( On 4 jun, 11:21, Ruben de Vries <rubensay...@gmail.com> wrote: > cascade persist works like a charm (check out my '>> this does work' > example) when called stand alone, but it just doesn't work when going > through the form. > because it seems the form API doesn't use the get/set methods to set > the properties o.O? > > On May 31, 7:20 pm, Stephan Petzl <stephan.pe...@gmail.com> wrote: > > > > > > > > > Without knowing whethercascade:persistshould do the job, i guess it > > could be an issue with owning and inverse side of your relation.[1]> "The > > owning side of a relationship determines the updates to the relationship in > > the database." > > > The owning side is your comment (since it is the one with the > > inversedBy property), so maybe you should try to save it this way: > > > $comment->setAuthor($user); > > > and then look whether it gets persisted. > > what i would love to know myself is, how the symfony form framework > > handles bidirectional relations like that... > > > [1]http://www.doctrine-project.org/docs/orm/2.0/en/reference/association... > > > BR Stephan > > > On May 28, 6:54 pm, Ruben de Vries <rubensay...@gmail.com> wrote: > > > > I've been going at this problem for hours now so I figured I better > > > just ask for help to avoid my head exploding soon ... > > > > I'll paste some snippets and then try to explain. > > > > >> yaml mapping for doctrime ORM > > > > GoGreat\DemoBundle\Entity\DemoUser: > > > oneToMany: > > > comments: > > > targetEntity: DemoComment > > > mappedBy: author > > > cascade: ["persist"] > > > > GoGreat\DemoBundle\Entity\DemoComment: > > > manyToOne: > > > author: > > > targetEntity: DemoUser > > > inversedBy: comments > > > > >> DemoUser entity > > > > class GoGreat\DemoBundle\Entity\DemoUser { > > > > public function addComments($comments) > > > { > > > $comments->setAuthor($this); > > > $this->comments[] = $comments; > > > } > > > > } > > > >> DemoUserType form > > > > class GoGreat\DemoBundle\Form\DemoUserType { > > > public function buildForm(FormBuilder $builder, array $options) > > > { > > > $builder->add('name', 'text'); > > > $builder->add('comments', 'entity', array( > > > 'class' => > > > 'GoGreat\DemoBundle\Entity\DemoComment', > > > 'property' => 'body', > > > 'expanded' => true, > > > 'multiple' => true, > > > )); > > > } > > > > } > > > >> this does work > > > > $user = new DemoUser(); > > > $comment = new DemoComment(); > > > > $user->addComments($comment); > > > > $em->persist($user); > > > $em->flush(); > > > > >> this doesn't work > > > > $form = $this->get('form.factory')->create(new DemoUserType()); > > > $request = $this->get('request'); > > > $user = new DemoUser(); > > > $em = $this->get('doctrine.orm.entity_manager'); > > > > $form->setData($user); > > > > if ($request->getMethod() == 'POST') { > > > $form->bindRequest($request); > > > if ($form->isValid()) { > > > > foreach ($user->getComments() as $comment) { > > > var_dump($comment->getBody(), > > > $comment->getAuthor()); > > > } > > > > $em->persist($user); > > > $em->flush(); > > > } > > > > } > > > > the var_dump just before thepersistdoes throw out the body, but it > > > doesn't have an author. > > > I think the form isn't using DemoUser->addComments to set the > > > comments, but how else could it set the comments? > > > > What am I doing wrong? > > > > If the examples aren't clear enough I can put the demo bundle on > > > github for you to check ...
-- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en