IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Comment creer un module mon compte?


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut Comment creer un module mon compte?
    Bonjour à tous, je souhaite créer un module "mon compte" pour que les utilisateurs puissent avoir une page avec toutes les informations les concernant.
    Comment puis je procéder pour la création de celle ci?
    j'ai une table "profile" relier a ma table "sf_guard_user" du plugin sfdoctrineguardplugin.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Qu'est ce qui te pose problème précisément ?

    En quoi ça serait différent d'un autre module ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    je ne sais pas sur quel piste partir, pour le moment j'utilisais l'admin generator, donc j'ai déjà un module pour gérer les utilisateurs et j'ai vu qu'on ne peut pas ajouter deux modules sur le même modèle, donc la je part sur un module CRUD vierge "account" qui sera seulement une page fixe recapitulant le profile de l'utilisateur.
    Mais pour accéder aux information de l'utilisateur je ne sais pas comment proceder.

    Il y a t'il des methodes a partir de sf_user pour récupérer les infos de ma table sf_guard_user et profile ?
    ou bien faut-il que j'effectue des requêtes doctrine moi même?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si tu as correctement suivi l'install du plugin sfDoctrineGuardPlugin tu as du normalement changer la déclaration de la classe myUser par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class myUser extends sfGuardSecurityUser
    {
    }
    En supposant que ta relation entre Profile et sfGuardUser soit correcte, tu peux donc faire, dans une action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getUser()->getGuardUser()->getProfile()
    Sinon tu peux aussi ajouter dans myUser.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function getProfile()
    {
      return $this->getGuardUser()->getProfile()
    }
    et faire dans tes actions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getUser()->getProfile()

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    je ne peut pas faire un getProfile car profile est le nom de ma table,
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sf_user->getGuardUser()->profiles->getName(); ?>
    mais ça ne fonctionne pas,
    le probléme c'est que ma clef étrangère est dans ma table profile avec comme foreign alias profiles, si ma clef été dans ma table sf_guard_user ça serai possible ou pas?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Non, la FK elle est bien là où elle est. Fait voir ce que tu as fait dans ton schema.yml

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    sfGuardUser:
      tableName: sf_guard_user
      columns:
        id:
          type: integer(4)
          primary: true
          default: null
          autoincrement: true
        username:
          type: string(128)
          unique: true
          notnull: true
        algorithm:
          type: string(128)
          notnull: true
          default: 'sha1'
        salt:
          type: string(128)
          default: null
        password:
          type: string(128)
          default: null
        is_active:
          type: integer(1)
          default: '1'
        is_tester:
          type: integer(1)
          default: '0'
        is_updater:
          type: integer(1)
          default: '0'
        is_super_admin:
          type: integer(1)
          default: '0'
        last_login:
          type: timestamp
          default: null
        created_at:
          type: timestamp
          notnull: true
        updated_at:
          type: timestamp
      indexes:
        is_active_idx_idx:
          fields: [is_active]
      options:
        charset: utf8
        collate: utf8_general_ci
     
    profile:
      columns:
        idProfile:
          type: integer(4)
          primary: true
          unsigned: true
          notnull: true
          autoincrement: true
        name:
          type: string(45)
          notnull: true
        lastname:
          type: string(45)
          notnull: true
        phone:
          type: string(45)
          default: 'NC'
        email:
          type: string(45)
          default: 'NC'
        company_idCompany:
          type: integer(4)
          unsigned: true
          notnull: true
        sf_guard_user_id:
          type: integer(4)
          unsigned: true
          notnull: true
      relations:
        companyIdCompany:
          class: company
          local: company_idCompany
          foreign: idCompany
          foreignAlias: profiles
        sfGuardUser:
          class: sfGuardUser
          local: sf_guard_user_id
          foreign: id
          foreignAlias: profiles
      options:
        charset: utf8
        collate: utf8_general_ci

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par symfony30000 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sf_user->getGuardUser()->profiles->getName(); ?>
    Ceci ne fonctionne pas car d'après le schema.yml, un sfGuardUser peut avoir plusieurs profiles.
    Il faudrait donc faire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($sf_user->getGuardUser()->profiles as $profile)
    {
      echo $profile->getName();
    }
    Mais je pense que dans ton cas, tu souhaites qu'un sfGuardUser n'ai qu'un seul profile attaché. Dans ce cas je te suggère plutôt de modifier la relation sur profile de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    relations:
        sfGuardUser:
          class: sfGuardUser
          local: sf_guard_user_id
          foreign: id
          foreignAlias: Profile
          foreignType: one
    De cette façon tu devrais pouvoir faire comme j'ai indiqué un peu avant

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    je vais essayé comme tu m'a dit, en faite j'ai bien indiqué sur mysql workbench que j'ai une relation 1:1 est c'est lui qui m'a généré le schema.yml

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    j'ai fait comme vous me l'avez indiqué avec foreignType: on
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $sf_user->getGuardUser()->profiles->getName(); ?>
    ça ne me provoque pas d'erreur mais ça ne m'affiche rien.

    De plus connaissez vous la différence sur mysql Workbentch entre les relations identifying trait en pointillé et non identifying trait plein? car ça vient peut être de la.
    merci

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    ah non j'ai rien dit c'est ok ça venez bien de la, j'ai oublié de recharger les données en base.
    Avez vous une réponse quand même pour les relations sur workbentch?
    car je génère mon schema via leur plugin

    merci pour ton aide

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    j'essaie de récupérer les groupes dans lesquels mon utilisateur est inscrit en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
                    foreach ($sf_user->getGuardUser()->sf_guard_user_groups as $groupes)
                    {
                      echo '<td>';
                      echo $groupes->getGroup_id();
                      echo '</td>';
                    }
                ?>
    mais j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unknown record property / related component "sf_guard_user_groups" on "sfGuardUser"
    il ne reconnait pas le foreignAlias alors qu'il est bien déclaré dans mon schema.yml

  13. #13
    Invité
    Invité(e)
    Par défaut
    Non, je n'ai pas du tout la réponse pour MySQL WorkBench, personnellement je rédige mon schema.yml à la main.

    Sinon pour les groupes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach ($sf_user->getGuardUser()->groups as $groupes)

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    tu as du courage, avec combien de tables? moi j'en est une trentaine je préfère le générer automatiquement.

    merci pour les groupes

Discussions similaires

  1. Comment demander la suppression de mon compte ?
    Par gaetan.tranvouez dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 04/09/2006, 03h00
  2. [FLASH 8] Comment créer mon animation
    Par emstar dans le forum Flash
    Réponses: 8
    Dernier message: 12/07/2006, 17h28
  3. Réponses: 16
    Dernier message: 16/05/2006, 12h37
  4. [debutant][outils] comment creer mon site web?
    Par jolio dans le forum Général Conception Web
    Réponses: 14
    Dernier message: 18/10/2005, 17h59
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo