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 :

relation 1-n et sélection dans un FORM [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 57
    Par défaut relation 1-n et sélection dans un FORM
    Bonjour,

    j'ai une relation classique 1-N dans mon schéma entre une tache et un status

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Tache:
      columns:
        date : { type: timestamp}
        description : { type: string(255), notnull: true }
        user_id : { type: integer, notnull: true } 
        status_id : { type: integer, notnull: true }   
        name : { type: string(255), notnull: true }
      relations:    
        Status: { onDelete: CASCADE, local: status_id , foreign: id, foreignAlias: Taches}
     
    Status:
      columns:
        name: { type: string(255), notnull: true, unique: true }
    je genere l'admin, tout se passe bien, par contre, quand je vais sur la page de création d'une tache, dans la liste déroulante permettant de choisir le status, j'ai l'ID du status et pas le nom ! qu'est ce que j'ai raté ??

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    J'aurais tendance à dire que c'est sensé marcher de la façon dont tu l'as écrite, mais en solution alternative tu peux essayer de redéfinir la méthode __toString dans Status.class.php afin de lui indiquer clairement de retourner $this->getName().

    En attendant une meilleure solution ...

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Peut-être un point à vérifier : savoir si tu utilises le bon Widget dans ton StatusForm.class.php ?

    Pour info, j'ai un widget ciy_id qui s'affiche correctement (sans avoir besoin de redéfinir __toString dans ma classe City) qui est défini ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'city_id'     => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('City'), 'add_empty' => true)),

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 57
    Par défaut
    autant pour moi : Status a deux champs, name et priority. Forcement, symfony savait pas lequel prendre pr le display.

    J'ai donc fais comme tu as dit c'est à dire ajouter la methode toString qui renvoie $this>getName et la ça marche nickel !

    Merci à toi !

  5. #5
    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
    La solution préconisée pour afficher le titre est la méthode __toString().

    Dans ton schéma, et pour simplifier, met tous les noms des objets au singulier, si le nom prends un s au singulier change le.

    Status -> Statut.

    Dans la relation le nom prend un "s" si la relation retourne une collection d'enregistrement, pas de "s" si la relation retourne un objet directement utilisable, ta relation devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      ...
      relations:    
        Statut: { onDelete: CASCADE, local: status_id , foreign: id, foreignAlias: Taches}
    A noter qu'on peut la noter plus simplement par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      ...
      relations:    
        Statut: { onDelete: CASCADE, foreignAlias: Taches}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] relation manytoOne mappée en text dans un form
    Par maarek dans le forum Symfony
    Réponses: 4
    Dernier message: 14/02/2012, 09h38
  2. [AC-2003] Fonction sélection d'enregistrements dans sous form (aide access)
    Par Chagui dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/11/2010, 17h17
  3. Réponses: 21
    Dernier message: 01/09/2010, 20h40
  4. Réponses: 2
    Dernier message: 07/01/2008, 11h44
  5. Sélection dans un query via case à cocher dans un form
    Par Bernard123 dans le forum Access
    Réponses: 2
    Dernier message: 22/12/2005, 14h49

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