Je voudrai passer à mon formtype un tableau de variables depuis le controller qui crée le form afin de mettre dans choices les choix à retenir. J'ai trouvé une solution par la session, mais je sens que je loupe quelque chose avec $options, mais quoi?
Voila le formtype:
class MessageType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$session = new session();
$recipients=$session->get('recipients');
$builder
->add('Destinataire', ChoiceType::class, array(
'choices' => $recipients,
'multiple' => false,
'expanded'=>true,
'mapped'=>true,
'label'=> 'Choisissez un destinataire'
));
->add('sujet',TextType::class)
->add('message',TextAreaType::class)
->add('file', FileType::class,array('label' => 'form.file', 'translation_domain' => 'FOSMessageBundle','required'=>false))
->add('Envoyez',SubmitType::class)
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'CLS\MessageBundle\Entity\Message',
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'cls_message_form';
}
}
sachant que $message hydrate le formulaire. Tout fonctionne bien y compris le choix prédéfini de mon choix destinataire qui est bien hydraté par le getDestinataire de message.
Mon problème: comment passer le tableau $recipients directement depuis mon controleur sans utiliser la session?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Site les mathématiques amusantes pour vous détendre
Site les mathématiques amusantes pour vous détendre