Passer des données à un formulaire Symfony3 par les options
Petit pense-bête pour ce cas pratique. On a un formulaire créé dans un FormType. Dans ce FormType, on veut passer un paramètre.
Dans le contrôleur, on écrit :
$form = $this->createForm(MonTypeForm::class, $entity, [
'monparametre' => $monparametre,
]);
Dans MonTypeForm, la méthode buildForm aura la forme suivante :
public function buildForm(FormBuilderInterface $builder, array $options)
{
$monparametre = $options['monparametre'];
Ne pas oublier, toujours dans MonTypeForm, la méthode configureOptions :
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
...
'monparametre' => "une valeur par défaut, ça peut-être une instanciation d'une classe !"
]);
$resolver->setRequired('monparametre');
$resolver->setAllowedTypes('monparametre', "type de monparamètre, si c'est une classe, bien penser à faire MaClassePar::class");