Bonjour a tous
j'ai un problem qui semble etre facile a resoudre mais bien difficile pour moi: je dispose d'une entity Category avec un attribut "name" et de son formulaire CategoryType une fois afficher le formulaire, remplie et soumi, je voudrais selectionner les entities de la classe Service (pour construire un autre formulaire plustard mais pas important pour l'instant....) qui est en relation ManyToOne avec Category voila. J'avais procede comme cela:
l'action de mon controller:
mon CategoryType.php
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 preRegistrationAction() { $category = new Category; $form = $this->createForm(new CategoryType, $category); $request = $this->getRequest(); $em = $this->getDoctrine()->getManager(); if($request->getMethod()=='POST'){ $form->bind($request); $category = $form->getData(); $categoryName = $category->getName(); //throw $this->createNotFoundException($categoryName); $categoryId = $em->getRepository('MpkCmsBundle:Category')->findOneBy(array('name' => $categoryName)); $services = $em->getRepository('MpkCmsBundle:Service')->findByCategory2($categoryId); return $this->render('MpkCmsBundle:Cms:index.html.twig', array('services' => $services, 'categoryId' => $categoryId,)); throw $this->createNotFoundException($category->getName()); return $this->redirect($this->generateUrl('mpk_cms_company_registration', array('category_id' => $categoryId))); } return $this->render('MpkCmsBundle:Default:index.html.twig', array('form' => $form->createView())); }
le problem est que je recupere bien la donnee soumise du formulaire et verifie qu'elle existe mais je n'arrive pas a l'utiliser comme parametre pour recuperer mon $idCategory comme ceci:
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 <?php namespace Mpk\CmsBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class CategoryType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name', 'entity', array('class' => 'Mpk\CmsBundle\Entity\Category', 'placeholder' => '', 'property' => 'name',)) ->add('save', 'submit') ; } /** * @param OptionsResolverInterface $resolver */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'data_class' => 'Mpk\CmsBundle\Entity\Category' )); } /** * @return string */ public function getName() { return 'mpk_cmsbundle_category'; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $categoryId = $em->getRepository('MpkCmsBundle:Category')->findOneBy(array('name' => $categoryName));
Partager