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

ORM PHP Discussion :

méthode getProfile() des utilisateurs


Sujet :

ORM PHP

  1. #1
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut méthode getProfile() des utilisateurs
    bonjour,

    J'ai des utilisateurs normaux avec sfguardplugin qui ont des profiles sfguarduserprofile et avec les évolution, il a un nouvel utilisateur qui a fait sont apparition et donc je lui ai créé un profil entProfile qui est lié a ce même user et dans mon ancien code y avait genre une méthode créée par doctrine qui est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $profile = $user->getProfile();
    ma question est: comment pourrais-je faire pour récupérer le entProfile d'un utilisateur donné?

    Merci d'avance...

  2. #2
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Points : 108
    Points
    108
    Par défaut
    tu parle de la personne connecté.si c'est oui tu peu faire une requette entre les table sfguardplugin e les autre table de relation et dans ton where :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sfContext::getInstance()->getUser()->getUserName()
    cette expression retourne le username de la personne connécté et puisque chaqu'un a sont username=logn tu peu filtrer avec.

  3. #3
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    J'ai rien compris !!!

    Je fille chercher un peu de paracétamol

    Qu'est ce que sfguarduserprofile ?

    Qu'est ce que entProfile?

    Qu'est ce que getProfil() ? (je suppute une méthode rattachée à un objet du modèle, mais est-ce un getter sur une propriété où un getter sur une relation ?

    Met peut-être ton shéma, cela peut servir pour comprendre où sont les mines dans ton application !

    Et pourquoi diable l'utilisateur entProfile n'a-t-il pas le même profile que les autres ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  4. #4
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Pour commencer, sfguardprofile il contient le profile d'un utilisateur et entprofile c'est le profil d'un autre utilisateur (c'est un autre type de user, une sorte d'évolution de mon application)

    Quand j'ai repris l'application j'ai trouvé qu'ils ont utilisé déjà la méthode getProfile() pour les sfguardprofile mais cette méthode (getProfile()) n'est définie nul part, elle a été générée automatiquement à mon avis et la moi je voudrai récupérer le entprofile comment pourrais-je faire?

    Voici le schéma de entprofile et merci beaucoup pour votre aide...

    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
    92
    entProfile:
      connection: doctrine
      tableName: ent_profile
      columns:
        id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: true
        etsname:
          type: string(80)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        address:
          type: string(150)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        zipcode:
          type: string(10)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        city:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        phone:
          type: string(45)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        fax:
          type: string(45)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        lastname:
          type: string(80)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        firstname:
          type: string(80)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        user_id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        SfGuardUser:
          local: user_id
          foreign: id
          type: one

  5. #5
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je n'aime pas du tout ton shema.yml, il me laisse penser qu'il est issu d'une base déjà existante et modifiée. Ce qui est une excellemment mauvaise méthode pour travailler sans problèmes...

    Dans tous les cas, la relation définie n'est pas correcte. Elle devrait ressembler à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      relations:
        SfGuardUser:
          local: user_id
          foreign: id
          type: One
          foreignType: One
          foreignAlias: entProfile
    A partir de là, tu pourras récupérer ton profil s'il existe pour ton utilisateur, par un getEntProfile().

    Reste a savoir comment était le shéma originel de l'application et pourquoi le tiens n'est qu'une relecture de la structure de la base de donnée. A partir de là, on pourra voir comment le gérer pour que tu puisses travailler sur la base existante avec les avantages de doctrines et symfony
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  6. #6
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Effectivement c'est un schéma issu d'une base de données déjà existante, c'est un projet existant, quand je l'ai repris on m'a pas fourni le schema avec donc j'ai été obligé de le régénérer de cette manière...

    Je vais essayer de faire ce que vous m'avez conseillé et je vais voir, dois-je régénérer les classes et le modèle?...

  7. #7
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    C'est un projet symfony ? !
    Et dans un projet symfony on ne t'as pas fourni le shema.yml à l'origine ? :

    ATTENTION ! Tu es en trains de travailler sur un nid d’œufs et tu portes des chaussures à crampons !

    Non, il ne faut pas régénérer tes objets du modèle (même si cela sera indispensable à terme).

    Assures toi de travailler sur une copie indépendante (le code ET les données sont stockées sur une autre machine).

    Il va te falloir faire de la rétro ingénierie dans les classe dite "base" de ton modèle pour comprendre comment les relations entre les entités (tables) ont été mise en place à l'origine. Créer un projet vierge (code ET données), y préparer un shema.yml en charge de reproduire à l'identique les entités de base existantes et les tables de la base de données. Tester et vérifier scrupuleusement que les objets ainsi générés sont en tous points identique à l'existant.

    Une fois cela fait, tu peux y rajouter tes modifications et régénérer le tout dans la base de test puis dans ta base de développement. En aucun cas il ne faudra le faire dans la base de production, il y a d'autre outils pour cela.

    Bonne chance.

    (mais vérifie bien que tu n'ais pas un shema.yml dans l'application ou dans les sources)(et si tu en trouves un, vérifie qu'il génère bien ce qui existe)(histoire d'enlever les crampons des chaussures).
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  8. #8
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    j'ai suivi toutes vos insctruction mais je n'ais pas eu de méthode me permettant de récupérer mon entProfile, je ne comprends plus rien, merci d'essayer de m'aider et désolé pour le dérangement...

  9. #9
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Avant d'envisager de rajouter une table, il est indispensable de reconstituer un shema.yml qui permette de travailler. Ceci est indispensable avant toutes modification.

    Si non, c'est comme travailler à la construction d'un deuxième étage dans une maison, sans savoir où sont les murs porteurs.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  10. #10
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Oui oui c'est ce que j'ai fait, ne vous inquiétez pas pour cela...

  11. #11
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Donc, si tu as un shema.yml qui, une fois utilisé dans une application de test te permet de générer une base identique ET les exactes mêmes objets du modèle, y compris pour le nom de toutes les méthodes chargée d'établir les relations entre les entités, nous pourrons passer à la suite.

    Toute tentative sans cela est, à très court terme, vouée à l'échec.

    As-tu testé ceci ? Ce n'est pas claire.

    Si oui, peux-tu mettre la partie du shema qui concerne le fonctionnement actuel des tables utilisateurs de l'application ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  12. #12
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Malheureusement, je ne peux pas mettre le schéma en détail, vu que c'est confidentiel en quelques sortes, j'ai fait ce que vous m'avez demandé mais je n'ai pas eu de méthode me permettant la récupération du entprofile, merci de votre aide...

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/11/2010, 20h59
  2. sélection des bd en fonction des utilisateurs (pg_hba.conf)
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 18/03/2004, 18h34
  3. [PostgresSQL]Pb accés des utilisateurs sans mot de passe
    Par woodwai dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/05/2003, 16h06
  4. Gestion des Utilisateurs depuis une application
    Par LLaurent dans le forum XMLRAD
    Réponses: 4
    Dernier message: 25/03/2003, 16h29
  5. Gestion approfondie des utilisateurs
    Par Lux interior dans le forum XMLRAD
    Réponses: 11
    Dernier message: 04/03/2003, 21h43

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