Je veux mettre à jour les données et j’ai besoin d’utiliser le constructeur de formulaire(form builder) pour créer le formulaire. J’ai vu des questions similaires mais cela ne fonctionne pas pour moi.
Mon constructeur de formulaire. Je pense que c’est bon.
class InfoType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class, ['label' => false])
->add('email', EmailType::class, ['label' => false])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
]);
}
}
Mon formulaire est sur twig. J’envoie l’identifiant de l’utilisateur actuel sur le formulaire.
{{ form_start(form, {'action': path('updateInfo',{'id':users.id}), 'method': 'GET'}) }}
{{ form_row(form.username, {'value' : users.username, 'attr': {'class': 'form-control'} }) }}
{{ form_row(form.email, {'value' : users.email, 'attr': {'class': 'form-control'} } ) }}
<button type="submit" class="btn btn-primary">Mettre à jour</button>
{{ form_end(form) }}
Mon contrôleur.
/**
* @Route("user/profile/{id}", name="updateInfo")
* @param $id
* @param Request $request
* @return Response
*/
public function updateInfoAction($id, Request $request)
{
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('App:User')->find($id);
$form = $this->createForm(GeneralInfoType::class, $user);
$username = $form->get('username')->getData();
dump($username);
}
Lorsque j’essaie de faire dump(username)
, j’obtiens " "
ou null de la part du serveur.