Bonjour à tous,
J'ai un petit soucis avec Symfony les forms
Contexte :
Deux entités :
- BlogPost
- BlogComment
Le BlogPost contient des BlogComments et vice et versa.
Quand j'affiche mon BlogPost j'ai inclue un formulaire pour rajouter un BlogComment à la suite (comme sur tout blog en faite).
Mais je n'arrive pas à référencer directement le BlogPost au BlogComment pour que ça soit invisible aux yeux de l'utilisateur.
CommentController
Ma FormType
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public function newAction(BlogPost $post=null) { $comment = new BlogComment(); if ($post) { $comment->setPost($post); } $form = $this->createForm(new CommentType(), $comment); return $this->render('SymbioseBlogBundle:Comment:new.html.twig', array('form' => $form->createView())); } public function createAction() { $comment = new BlogComment(); $request = $this->getRequest(); $form = $this->createForm(new CommentType(), $comment); $form->bindRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getEntityManager(); $em->persist($comment); $em->flush(); return $this->redirect($this->generateUrl('SymbioseBlogBundle_view_post', array('id' => $comment->getPost()->getId()))); } return $this->render('SymbioseBlogBundle:Comment:new.html.twig', array('form' => $form->createView())); }
Ma FormTwig
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?php namespace Symbiose\BlogBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class CommentType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder->add('text','textarea') ->add('post','hidden'); } public function getName() { return 'comment'; } public function getDefaultOptions(array $options) { return array( 'data_class' => 'Symbiose\BlogBundle\Entity\BlogComment', ); } }
Si quelqu'un à une idée je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <form action="{{ path('SymbioseBlogBundle_create_comment') }}" method="post" {{ form_enctype(form) }} class="new_comment"> {{ form_errors(form) }} {{ form_widget(form.text,{ 'attr': {'class': 'comment_field'}}) }} {{ form_rest(form) }} <p class="submit"> <input type="submit" class="button-submit" value="Ajouter" /> </p> </form>
Cdt.
Partager