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 :

1_4 : foreign id dans les listes de formulaire


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut 1_4 : foreign id dans les listes de formulaire
    bonjour

    je suis un nouveau sur ce forum comme un nouveau utilisateur de symfony totu court.


    je commence un projet personnel sur ce produit en suivant l'exemple de jobeet
    j'ai créé les fichiers yaml de base et de données

    généré les model , sql et...

    1er probleme:
    au moment d'inserer l'sql (php symfony doctrine:insert-sql) j'ai apparemment une erreur dans la rédaction de mon ordre. erreur que je ne trouve pas..

    " SQLSTATE[HY000]: General error: 1005 Can't create table 'greenspot.#sql-3c8_1b' (errno: 121). Failin
    g Query: "ALTER TABLE greenspot_acces ADD CONSTRAINT greenspot_acces_langue_id_greenspot_langue_id FOR
    EIGN KEY (langue_id) REFERENCES greenspot_langue(id) ON DELETE CASCADE". Failing Query: ALTER TABLE gr
    eenspot_acces ADD CONSTRAINT greenspot_acces_langue_id_greenspot_langue_id FOREIGN KEY (langue_id) REF
    ERENCES greenspot_langue(id) ON DELETE CASCADE"

    NB: cette erreur n'est pas affichée en utilisant le build--all--and-load, marrant.

    mais mon plus gros problème tient dans les formulaires !

    2eme problème:
    les listes des formulaires retournent la foreign id au lieu de la colonne contenant les données
    j'ai donc une jolie liste contenant des 1,2,3,4 au lieu des données attendues.
    je me doute que cela doit avoir quelque chose en commun avec la gestion des relations. mais quoi ?
    mais il est a noter que les id affichés correspondent à mes jeux de tests.

    je m'arrache les cheveux et ne trouve pas de réponse sur ce forum
    quelqu'un peut il m'aider s'il vous plait ?

    merci


    voici une version allégée de mes fichiers
    mais qui me pose tout de même le problème.


    schema-----------------------------------------------------------
    GreenspotApplication:
    columns:
    application: {type: string(100), notnull: true, unique: true}


    GreenspotClient:
    actAs: { Timestampable: ~ }
    columns:
    application_id: {type: integer, notnull: true}
    acces_id: {type: integer, notnull: true}
    genre_id: {type: integer, notnull: true}
    langue_id: {type: integer, notnull: true}
    prenom: {type: string(100), notnull: true}
    nom: {type: string(100), notnull: true}
    date_naissance: {type: timestamp(25), default: '0000-00-00 00:00:00', notnull: true}
    particulier: {type: boolean, default: '0'}
    societaire: {type: boolean, default: '0'}
    poste_id: {type: integer, notnull: true}
    telephone: {type: string(100)}
    fax: {type: string(100)}
    email: {type: string(100), notnull: true, unique: true}
    password: {type: string(100), notnull: true}
    newsletter: {type: boolean, default: '0'}
    rappel: {type: boolean, default: '0'}
    date_suppression: {type: timestamp(25), default: '0000-00-00 00:00:00', notnull: true}
    auteur_id: {type: integer, notnull: true}
    relations:
    GreenspotApplication: { onDelete: CASCADE, local: application_id, foreign: id }




    données-------------------------------------------------------


    # data/fixtures/application.yml
    GreenspotApplication:
    greenspot:
    application: Greenspot


    # data/fixtures/client.yml
    GreenspotClient:
    admin:
    GreenspotApplication: greenspot
    acces_id: 1
    genre_id: 1
    langue_id: 1
    prenom: nicolas
    nom: cosson
    date_naissance: '26-05-1975'
    particulier: 1
    societaire: 1
    poste: 1
    telephone: 0660748625
    fax: 0660748625
    email: cosson.n@free.fr
    password: XXXXX
    newsletter: 1
    rappel: 1
    created_at: '14-02-2010'
    updated_at: '14-02-2010'
    date_suppression: '00-00-0000'
    auteur_id: 1

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    Lorsque tu fait un echo sur ton objet application, doctrine cherche un moyen de l'afficher correctement (donc il cherche une colonne, name, ou autre chose), pour modifier cela, tu peut ajouter une méthode __toString pour définir comment afficher ton objet, sinon le widget sfWidgetFormChoices a une options qui permet de définir la méthode a appeler pour afficher l'objet dans la liste

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut en effet ça fonctionne en renommant la colonne
    Citation Envoyé par benji07 Voir le message
    Lorsque tu fait un echo sur ton objet application, doctrine cherche un moyen de l'afficher correctement (donc il cherche une colonne, name, ou autre chose), pour modifier cela, tu peut ajouter une méthode __toString pour définir comment afficher ton objet, sinon le widget sfWidgetFormChoices a une options qui permet de définir la méthode a appeler pour afficher l'objet dans la liste
    en effet ça fonctionne nettement mieux en renommant la colonne par "name"
    Sur le form edit je retrouve bien mes données dans la listbox et plus les ID
    merci !

    cependant, le template indexSuccess affiche lui toujours les IDs et non les données...

    où dois je ajouter la méthode __toString ?
    dans les fichiers index, nex, edit, shoxSuccess du template ou ailleurs ?

    merci



    -- --- - - - - - - - -apres 20 minutes , je viens de lire la fin de la page de l'étape 3 du tuto jobeet

    l'idée est bien d'ajouter un qlq chose comme ça, non ?

    public function __toString()
    {
    return $this->getApplication();
    }

    dans /lib/model/doctrine/fic.class.php

    là ça parait fonctionner pour le form EDIT

    mais toujours pas pour la page index

    ?????

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/06/2007, 15h29
  2. [XUL] Comportement des images dans les listes item
    Par Christophe Charron dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 02/03/2007, 12h50
  3. Réponses: 2
    Dernier message: 04/06/2006, 20h11
  4. Réponses: 7
    Dernier message: 22/10/2005, 19h20

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