Bonjour,
je suis entrain de faire mon propre site mais j'ai tomber dans un problem :s
je voulais réaliser un formulaire dinscription en plusieurs étapes, j'ai utilisé le bundle CraueFormFlowBundle,
mais je rencontre un problème rien ne s'affiche sur ma page (je pense que le problème vient du services.yml) :/
voila le code que j'ai utilisé
service.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Projet.form.registerUser: class: Projet\AnnoncesBundle\Form\Type\RegisterUserFlow tags: - { name: form.type, alias: registerUser } Projet.form.flow.registerUser: class: Projet\AnnoncesBundle\Form\Type\RegisterUserFormType parent: craue.form.flow scope: request calls: - [ setFormType, [ @Projet.form.registerUser ] ]
RegisterUserFlow.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 <?php // Projet/AnnoncesBundle/Form/Type/RegisterUserFlow.php namespace Projet\AnnoncesBundle\Form\Type; use Craue\FormFlowBundle\Form\FormFlow; class RegisterUserFlow extends FormFlow { protected $maxSteps = 3; protected function loadStepDescriptions() { return array( 'Account', 'Password', 'Terms of service', ); } }
RegisterUserFormType.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
32
33
34
35
36
37 <?php // Projet/AnnoncesBundle/Form/Type/RegisterUserFormType.php namespace Projet\AnnoncesBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class RegisterUserFormType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { switch ($options['flowStep']) { case 1: $builder->add('titre'); break; case 2: $builder->add('description'); break; case 3: $builder->add('adresse'); break; } } public function getDefaultOptions(array $options) { $options = parent::getDefaultOptions($options); $options['flowStep'] = 1; $options['data_class'] = 'Projet\AnnoncesBundle\Entity\Annonce'; // should point to your user entity return $options; } public function getName() { return 'registerUser'; } }
Action ds controller
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 <?php // Depot Accueil public function indexAction() { $user = new Annonce(); // should be your user entity $flow = $this->get('Projet.form.flow.registerUser'); // must match the flow's service id echo "<pre>"; print_r($flow); echo "</pre>"; $flow->bind($user); $form = $flow->createForm($user); if ($flow->isValid($form)) { $flow->saveCurrentStepData(); if ($flow->nextStep()) { // render form for next step return array( 'form' => $flow->createForm($user)->createView(), 'flow' => $flow, ); } // flow finished $em = $this->getDoctrine()->getEntityManager(); $em->persist($user); $em->flush(); return $this->redirect($this->generateUrl('home')); // redirect when done } return array( 'form' => $form->createView(), 'flow' => $flow, ); }
je suis vraiment prssé
merci davance
Partager