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 :

setId inutile ? [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 15
    Par défaut setId inutile ?
    Bonjour,

    j'ai une application dans laquelle je doit "setter" mon id

    J'ai donc fait un jolie

    et derriére un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $object->getId();
    jusque là tous va bien.

    Mais quand je regarde en BDD, je vois que l'id n'est plus du tout celui que j'ai setter ,il prend l’incrément auto

    Alors oui, c'est normal c'est un incrément auto alors il s'incèremente automatiquement. Mais dans mon appli je veux / doit pouvoir setter l'id que je veux.

    J'ai regardé les logs, le insert into est dépourvu d'id

    dans mon entity j'ai définit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        /**
         * @ORM\Id
         * @ORM\GeneratedValue
         * @ORM\Column(type="integer")
         */
        private $id;
    peut-être une stratégie a rajouter? si oui laquelle ?

    Merci de votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Par défaut
    Question idiote mais... as-tu fait un persist / flush juste après le setId() ?
    Bah ouais fallait bien la poser cette question :p

    Sinon ca m'intrigue aussi ce problème...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 15
    Par défaut
    oui biensur l'object est bien enregistré en BDD avec les bonnes info sauf l'id

    Mais tu as raison fallait la poser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $em = $this->get("doctrine.orm.entity_manager");
            $em->persist($object);
            $em->flush();
    vous avez également le problème ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Par défaut
    Non je n'ai pas ce soucis, mais c'est le genre de petit problème qui peut arriver à tout moment, et finalement on met du temps à le résoudre...

    Il fait quoi exactement le "@ORM\GeneratedValue" ?

    De mon côté j'utilise toujours le YML, et je ne connais pas toutes les subtilités de Doctrine2.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 15
    Par défaut
    "Specifies which strategy is used for identifier generation for an instance variable which is annotated by @Id. This annotation is optional and only has meaning when used in conjunction with @Id.

    If this annotation is not specified with @Id the NONE strategy is used as default."

    en gros, c'est le auto incremente je pense.

    On peut lui assigner une "strategy" au choix :

    AUTO, SEQUENCE, TABLE, IDENTITY and NONE.

    par default c'est none qui est prit

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Février 2007
    Messages : 37
    Par défaut
    Hello,

    Pq mettre une strategy AUTO si c'est toi qui set l'id (dans tous les cas).
    None conviendrait mieux =>
    NONE: Tells Doctrine that the identifiers are assigned (and thus generated) by your code. The assignment must take place before a new entity is passed to EntityManager#persist. NONE is the same as leaving off the @GeneratedValue entirely.

    http://www.doctrine-project.org/docs...ion-strategies

    EDIT : Assure toi peut être qd même dans tes annotations que la valeur du champ id est unique

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 15
    Par défaut
    le NONE ne peut pas fonctionner dans ce cas car je ne SET pas toujours l'ID

    est-il possible de : à la fois SETTER et AUTO INCREMENTER la colonne id ?

    Merci de votre aide

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

Discussions similaires

  1. [tomcat] bcp de choses inutiles au démarrage du serveur
    Par iubito dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 23/06/2004, 20h10
  2. [ Code ] Analyse de code - Attribut Inutile
    Par geegee dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/05/2004, 09h07
  3. [LG]elimination d'espace inutile
    Par mister_dsg dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2003, 11h47
  4. Réponses: 2
    Dernier message: 03/12/2002, 11h42

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