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 :

champ id calculé non auto_increment [1.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
    Décembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 24
    Par défaut champ id calculé non auto_increment
    Bonjour,

    je voudrais redéfinir mon model pour que lorsque il sauvegarde mes données il utilise une fonction qui calcul un id

  2. #2
    Membre éprouvé

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Par défaut
    En supposant que tu utilises doctrine, un exemple de champ id en clef primaire :
    A mettre dans la section "columns" de ta table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // config/doctrine/schema.yml
    id:  {type: integer(4), primary: true, autoincrement: true, notnull: true }

    PS : si tu ne définis pas de clef primaire sur une table, par défaut doctrine va créer un champ id autoincrement.

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

    Informations forums :
    Inscription : Décembre 2010
    Messages : 24
    Par défaut
    Effectivement j'utilise doctrine mon schema est bon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        num:
          type: integer(4)
          fixed: false
          unsigned: true
          primary: true
          autoincrement: false
    je doit calculé ce champ moi meme avec une requête :
    je sélectionne le dernier id je lui ajoute +1 (pour simplifié)
    la requête je l'ai mais je sais pas comment l’implémenté pour que a chaque sauvegarde en base ca soit exécuté

  4. #4
    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
    Il faut travailler dans le modèle.

    Tu dois créer une méthode getId qui te retourne ton id (return parent::__get('Id')

    Une méthode setId qui génère une erreur.

    Une méthode preSave qui va vérifier que l'enregistrement est en création (isNew) et calcul le numéro d'Id. Il l'implante ensuite (parent::__set('Id', $valeurDeId) )

    Suivant le cas, tu peux aussi envisager de faire un triger sur ta base, mais c'est une autre histoire.

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

    Informations forums :
    Inscription : Décembre 2010
    Messages : 24
    Par défaut
    Merci pour ta réponse y aurait pas un lien détaillant un peux tout cela ? :p

  6. #6
    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
    A ma connaissance non.

    Expérience acquise en développant un module un brin tordu...

    Je t'ai mis les méthodes qui devraient te servir.

    Note, en cherchant, tu vas trouver des informations sur la surcharge de la méthode save. Je me demande si on n'en parle pas dans Jobeet. Je n'ai pas de raccourcis sous la main pour cela.

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

Discussions similaires

  1. Champ calculé non reconnu
    Par arthson dans le forum Modélisation
    Réponses: 1
    Dernier message: 07/12/2013, 07h08
  2. Réponses: 2
    Dernier message: 21/02/2009, 01h30
  3. Réponses: 18
    Dernier message: 26/02/2006, 23h07
  4. [Quick Report] Valeur d'un champ existante mais non affichée
    Par navis84 dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/03/2005, 09h15

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