Bonjour ,
J'essaye de construire un formulaire imbriqué (Article et Commentaire ) , je me demande pourquoi les champs du formulaire Commentaire ne s'affiche pas au niveau de la vue .
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php namespace Blog\newsBundle\Form; use Blog\newsBundle\Entity\Picture; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; use Blog\newsBundle\Form\CommentaireType; class ArticleType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('titre','text') ->add('auteur','text') ->add('datePub',"date") ->add('contenue',"textarea") ->add('commentaires','collection',array( 'type' => new CommentaireType(), 'prototype'=>true,'allow_add' =>true,'by_reference'=>false)) ->add('Envoyer','submit') ->add('Annuler','reset'); } /** * @param OptionsResolverInterface $resolver */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'data_class' => 'Blog\newsBundle\Entity\Article' //'cascade_validation' => true )); } /** * @return string */ public function getName() { return 'blog_newsbundle_article'; } }
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
32
33
34
35
36
37
38
39
40
41
42
43 <?php namespace Blog\newsBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class CommentaireType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('titre','text') ->add('auteur','text') ->add('datePubCom','date') ->add('contenue','textarea') //->add('article') ; } /** * @param OptionsResolverInterface $resolver */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'data_class' => 'Blog\newsBundle\Entity\Commentaire' )); } /** * @return string */ public function getName() { return 'blog_newsbundle_commentaire'; } }
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php /** * Created by PhpStorm. * User: dev * Date: 08/03/14 * Time: 10:43 */ namespace Blog\newsBundle\Controller; use Blog\newsBundle\Entity\Article; use Blog\newsBundle\Form\ArticleType; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class BlogController extends Controller{ public function indexAction() { $article=new Article(); $form=$this->createForm(new ArticleType(),$article); $request=$this->get('request'); if($request->getMethod() == 'POST') $form->bind($request); if($form->isValid()) { $em=$this->getDoctrine()->getManager(); $em->persist($article); $em->flush(); return $this->redirect($this->generateUrl('blognews_succes')); } return $this->render('BlognewsBundle:Default:index.html.twig',array('form'=>$form->createView())); } public function succesAction() { $nom="PPP"; return $this->render('BlognewsBundle:Blog:afficher.html.twig',array('nom'=>$nom)); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part {{ form(form) }}






Répondre avec citation
Partager