[Symfony2] Les forms collection
Bonjour à tous,
J'essai de faire un formulaire mais je bloque sur un point.
J'ai un quizz qui lui as plusieurs questions qui eux même ont plusieurs réponses.
Je voudrais donc faire un formulaire générale qui m'affiche toutes les questions du quizz avec ses réponses associées.
Je n'arrive ni à récupérer les questions / réponses associées au quizz ni à les afficher.
Voilà mon code :
Code:
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
| <?php
namespace AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use AppBundle\Form\Type\FrontendQuestionQuizzMultipleType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class FrontendQuizzType extends AbstractType
{
public function __construct() {
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('quizzquestions', 'collection', array('type' => new FrontendQuestionQuizzMultipleType() ) )
;
}
/**
* @return string
*/
public function getName()
{
return 'frontend_appbundle_quizz';
}
} |
Code:
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 AppBundle\Form\Type;
use AppBundle\Entity\QuizzResponseRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class FrontendQuestionQuizzMultipleType extends AbstractType
{
protected $options;
public function __construct() {
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('content')
->add('quizzresponses','entity', array('class' => 'AppBundle\Entity\QuizzResponse', 'by_reference' => true, 'multiple' => true, 'required' => false));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\QuizzQuestion',
));
}
/**
* @return string
*/
public function getName()
{
return 'frontend_appbundle_quizzquestion';
}
} |
Code:
1 2 3 4 5
| {{ form_start(form) }}
{% for question in form.quizzquestions %}
NE RENTRE PAS DEDANS
{% endfor %}
{{ form_end(form) }} |
Je voudrais que le rendu final soit :
Question 1 : Titre Question 1
Bouton radio choix 1 Réponse Question 1
Bouton radio choix 2 Réponse Question 1
Question 2 : Titre Question 2
Bouton radio choix 1 Réponse Question 2
Bouton radio choix 2 Réponse Question 2
etc ....
Bouton Valider
Merci d'avance pour votre aide