Bonjour,
Voila ma demande va peut être vous semblez bete et facile mais je n'arrive pas à créer ou tout du moins récupérer le formulaire d'inscription de sfGuard.
Pour vous donner un meilleur aperçu, voila ce que j'ai fait:
- Construire les formulaires de la base de données à l'aide de "symfony propel:build-forms"
- j'ai créé une nouvelle table sf_guard_user_profile dans laquelle je souhaite stocker d'autres informations (nom, prenom, avatar, ...)
- j'ai créé un nouveau module dans le frontend nommée register avec l'invite de commande : "symfony generate:module frontend register"
Voici un apercu de mon fichier schema.yml:
J'ai donc bien lié les deux tables et mes dossiers actions et templates dans apps/frontend/register.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //.. sf_guard_user_profile: _attributes: { phpName: SfGuardUserProfile } ID_Utilisateur: { phpName: IdUtilisateur, type: INTEGER, size: '11', primaryKey: true, autoIncrement: true, required: true, foreignTable: sf_guard_user, foreignReference: id, onDelete: CASCADE, onUpdate: RESTRICT } Nom: { phpName: Nom, type: VARCHAR, size: '50', required: true } Prenom: { phpName: Prenom, type: VARCHAR, size: '50', required: true } Email: { phpName: Email, type: VARCHAR, size: '255', required: true } Avatar: { phpName: Avatar, type: VARCHAR, size: '255', required: true } Metier: { phpName: Metier, type: VARCHAR, size: '50', required: true }
Dans mon fichier indexSuccess.php j'ai:
Je suppose qu'il faut que je modifie mon fichier actions.class.php pour lui demander d'afficher le formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <h1 align="center">Inscription</h1> <?php echo $form->renderFormTag(url_for('register/index')) ?> <table> <?php echo $form ?> </table> <input type="submit" value="S'enregistrer" /> </form>
J'ai donc essayé:
Ensuite pour essayer j'ai changer ma page d'accueil dans mon fichier routing.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 <?php class registerActions extends sfActions { public function executeIndex(sfWebRequest $request) { $this->form = new sfGuardUserForm(); if ($request->isMethod('post')) { $this->form->bind($request->getParameter('sf_guard_user')); if ($this->form->isValid()) { $this->form->save(); $this->getUser()->signIn($this->form->getObject()); $this->redirect('@homepage'); } } } }
Cependant, lorsque je tente d'ccéder à la page, j'ai cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 homepage: url: / param: { module: register, action: index }
J'aimerais aussi savoir si les champs que j'ai défini dans ma table sf_guard_user_profile seront visibles dans mon formulaire ou non? Si tel n'est pas le cas comment faire?
Merci d'avoir pris le temps de me lire et de votre aide.
Amicalement,
babyboy6492.
Partager