Bonsoir à tous,
Je débute avec Symfony, et essaie d'implémenter un espace membres en partie grâce au plugin sfDoctrineGuard ; j'ai lu la documentation officielle, et fouiné sur le net à la recherche de tutos.
Pour l'instant, j'ai un formulaire d'enregistrement personnalisé qui permet bien aux utilisateurs de s'inscrire. En revanche, je voudrais rajouter quelques champs personnalisés afin d'établir un profil grâce à sfGuardUserProfile mais ceux-ci n'apparaissent pas dans mon formulaire d'inscription (alors qu'à priori, ils devraient ?)
Comment pourrais-je faire pour que mes champs personnalisés apparaissent svp ?
Voici quelques codes qui me semblent utiles pour la réponse à ma question, merci d'avance !
sfGuardRegisterForm.php
app.yml
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 class sfGuardRegisterForm extends sfGuardUserForm { public function configure() { parent::configure(); unset( $this['created_at'], $this['updated_at'], $this['last_login'], $this['groups_list'], $this['permissions_list'], $this['is_active'], $this['is_super_admin'], $this['salt'], $this['algorithm'] ); $this->widgetSchema['password'] = new sfWidgetFormInputPassword(); $this->widgetSchema->setLabels(array('username' => 'Nom d\'utilisateur :', 'password' => 'Mot de passe :')); } }
/modules/sfGuardAuth/actions/actions.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5all: sf_guard_plugin: routes_register: false profile_class: sfGuardUserProfile profile_field_name: user_id
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 require_once(sfConfig::get('sf_plugins_dir').'/sfDoctrineGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php'); class sfGuardAuthActions extends BasesfGuardAuthActions { public function executeRegister($request) { if($this->getUser()->isAuthenticated()) { // User already registered // Redirect to home page $this->getUser()->setFlash('message', 'Vous êtes déjà enregistré.'); $this->redirect('homepage'); } $this->form = new sfGuardRegisterForm(); if ($request->isMethod('post')) { $this->form->bind($request->getParameter('sf_guard_user')); if ($this->form->isValid()) { $sf_guard_user = $this->form->save(); $this->getUser()->setFlash('message', 'Vous êtes maintenant enregistré.'); } } } }
Partager