Bonjour à tous !
Bon le titre est relativement explicite :p
Bon Symfony, du moins sur ce bundle je suis honnêtement à la ramasse.
J'ai cherché bon nombre de tuto ou d'aide existante sur le net, et je ne trouve pas exactement mon problème.
J'ai un projet Symfony où mon FOSUserBundle fonctionne parfaitement, le formulaire du login me convient très bien mais cependant le formulaire pour éditer les données du profil se limite qu'à trois champs par défaut ( login, email, password ).
J'ai suivi en particulier ce tuto de la doc officiel, mais sans succès ou alors je ne comprends pas tout -_- :
https://github.com/FriendsOfSymfony/...iding_forms.md
Comment faire pour mettre la main sur l'origine du formulaire d'édition du profil, parce que moi je n'ai que ça :
Comment trouver et ajouter des attributs à ce formulaire ?
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 {% trans_default_domain 'SonataUserBundle' %} <div class="container"> <div class="row"> <div class="col-sm-6 col-md-4 col-md-offset-4" style="margin:0 auto; float:none"> <h1 class="text-center login-title">{{ 'form.registration_title'|trans }}</h1> <div class="well"> <div class="clearfix"></div> <form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="form-register form-horizontal"> {{ form_widget(form) }} <br /> <br /> <input class="btn btn-lg btn-info btn-block" type="submit" value="{{ 'registration.submit'|trans }}"> </form> </div> <p class="text-center"> <a href="{{ path('fos_user_security_login') }}" class="white">{{ 'form.already_register' | trans }}</a> </p> </div> </div> </div>
Au risque de paraître bête, je ne sais pas où et comment on fait pour ajouter ou même trouver l'origine de ce genre de ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part {{ form_widget(form) }}
Comment faire pour ajouter des champs sur le profil de l'utilisateur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part {{ 'form.registration_title'|trans }}
C'est à dire que j'ai ajouté des champs dans ma base de données ( dans la table user toujours), mais je ne vois que le login, email et password avec la possibilité de les éditer celles-ci. Comment faire pour ajouter de nouveau attribut dans le formulaire sur lequel nous visionnons juste le profil de l'utilisateur ?
Le seul formulaire que j'ai trouvé en fouillant un peu partout c'est celui du login, que je n'est pas besoin de modifier :
Fiou, c'est complexe, même après la lecture de la doc offi
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 class RegistrationType extends BaseType { public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); $builder ->add('captcha', 'captcha', array( 'width' => 100, 'distortion' => false, 'quality' => 100, 'background_color' => [255,255,255], 'as_url' => true, 'reload' => true, 'attr' => array('class'=>'form-control captcha'))) ->add('email', 'email', array( 'label' => 'form.email', 'translation_domain' => 'FOSUserBundle', 'attr'=>array('class'=>'form-control'))) ->add('username', null, array( 'label' => 'form.username', 'translation_domain' => 'FOSUserBundle', 'attr'=>array('class'=>'form-control'))) ->add('plainPassword', 'repeated', array( 'type' => 'password', 'options' => array('translation_domain' => 'FOSUserBundle'), 'first_options' => array('label' => 'form.password', 'attr'=>array('class'=>'form-control')), 'second_options' => array('label' => 'form.password_confirmation', 'attr'=>array('class'=>'form-control')), 'invalid_message' => 'fos_user.password.mismatch', )); } public function getName() { return 'sonata_user_registration'; } }
Ce que je ne comprends pas c'est que dans tous les problèmes ou tuto que je vois, tous le monde parle de surcharge de formulaire déjà présent... mais bon dans UserBundle/Form/Type j'ai que RegistrationType.php, UserInfoType et photoType... donc rien en rapport avec la mise à jour du profil ou l'affichage du profil utilisateur...
Merci d'avance !
Partager