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 :

Schéma pour étendre sfGuardUser


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 10
    Par défaut Schéma pour étendre sfGuardUser
    Bonjour,

    Je débute dans la découverte de Symfony et je fais quelques essais avant de me décider à l'utiliser pour recoder une application dont le seul but est de gerer des listes de personnes.

    Pour cette application j'ai besoin de sfGuardUser. L'installation ne m'a pas posé de problème. Par contre je souhaite étendre la table sf_guard_user. J'ai vu qu'il était possible de passer par les profiles, mais j'essaye une autre approche via l'inheritance de type simple.

    Voici mon schéma :
    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
    Hr:
      inheritance:
        type:             simple
        extends:          sfGuardUser
      columns:
        ...
        gender: { type: string(1) }
        bank_account: { type: string(125) }
        team_id: {type: bigint(20)}
      relations:
        Team:
          type: one
          foreignType: many
          foreignAlias: Hr
          local: team_id
          foreign: id
     
    Team:
      columns:
        label: { type: string(255), notnull: true}
      relations:
        Hr:
          type: many
    Après avoir fait un build all je retrouve bien mon form Hr avec les champs définis ci-dessus ainsi que ceux de sfGuardUser.
    Par contre, dans le form Hr le champ "team" se met en input type="text" par défaut et pas en select
    Est-ce normal ? Dois-je d'office passer par la définition du widget ou est-ce parceque mon schéma n'est pas construit correctement ?

    Dans mes essais, si je supprime complètement la notion de inheritance dans le schéma, alors pas de problème la relation vers team est détectée et le form issus du build all sont bien affiché avec un select pour le champ team.

    D'avance merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Ton schéma corrigé :
    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
     
    hr:
      inheritance:
        type:             simple
        extends:          sfGuardUser
      columns:
        ...
        gender: { type: string(1) }
        bank_account: { type: string(125) }
        team_id: {type: bigint(20)}
      relations:
        team:
          foreignAlias: Hrs
     
    team:
      columns:
        label: { type: string(255), notnull: true}
    Avec recherche, tu trouveras de nombreux sujet où j'explique ces modifications

    Pense à créer, dans le modèle de team, une méthode __toString()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function __toString()
    {
       return $this->getLabel();
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 10
    Par défaut
    Merci pour ton aide.
    Mais il y a quelque chose que je ne dois toujours pas faire correctement car le champ team apparaît toujours sous la forme d'un input type="text"
    Ce que j'ai fait :
    • Modification de mon schema.yml
    • ./symfony doctrine:build --all
    • php symfony doctrine:generate-module --with-show --non-verbose-templates extranet team team
    • php symfony doctrine:generate-module --with-show --non-verbose-templates extranet hr hr
    • ./symfony cc


    Faut-il y voir un rapport avec ceci :
    http://trac.symfony-project.org/ticket/8105

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    j'ai eu le même problème, j'ai du directement surcharger sfGuardUser si je voulait conserver mes relations dans mes champs supplémentaires, l'aggrégat ne fonctionne pas.

Discussions similaires

  1. [MCD] Aide sur schéma pour un annuaire
    Par Tchupacabra dans le forum Schéma
    Réponses: 8
    Dernier message: 22/09/2008, 09h35
  2. DD-WRT pour étendre le reseau
    Par HWICE dans le forum Hardware
    Réponses: 5
    Dernier message: 02/09/2008, 01h23
  3. Réponses: 1
    Dernier message: 30/04/2008, 19h35
  4. Quel schéma pour manipuler une table BD depuis un objet ?
    Par caesarvanou dans le forum Design Patterns
    Réponses: 2
    Dernier message: 19/12/2007, 09h29
  5. [XSD] Utiliser plusieurs schémas pour un XML
    Par baygz dans le forum Valider
    Réponses: 1
    Dernier message: 31/07/2006, 16h03

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