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:
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 }
J'ai donc bien lié les deux tables et mes dossiers actions et templates dans apps/frontend/register.

Dans mon fichier indexSuccess.php j'ai:
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>
Je suppose qu'il faut que je modifie mon fichier actions.class.php pour lui demander d'afficher le formulaire.
J'ai donc essayé:
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');
      }
    }
  }
}
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
 
homepage:
  url:   /
  param: { module: register, action: index }
Cependant, lorsque je tente d'ccéder à la page, j'ai cette erreur:


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.