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

Doctrine2 PHP Discussion :

Erreur : "No mapping found for field 'id'"


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut Erreur : "No mapping found for field 'id'"
    Bonjour,

    J'ai cette erreur très bizarre et je ne la comprends pas vu que le mapping est normalement fait.



    Voilà ma classe qui pose problème :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?php
     
    namespace monSite\SettingsBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * monSite\SettingsBundle\Entity\Settings
     *
     * @ORM\Table(name="settings")
     * @ORM\Entity
     */
    class Settings
    {
        /**
         * @var integer $id
         *
         * @ORM\Column(name="id", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        private $id;
     
        /**
         * @var Creditcard
         *
         * @ORM\ManyToOne(targetEntity="Creditcard")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="creditCard_id", referencedColumnName="id")
         * })
         */
        private $creditcard;
     
        /**
         * @var Accounttype
         *
         * @ORM\ManyToOne(targetEntity="Accounttype")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="accountType_id", referencedColumnName="id")
         * })
         */
        private $accounttype;
     
     
        public function getAccountType()
        {
            return $this->accountType;
        }
     
        public function setAccountType(AccountType $accountType)
        {
            $this->accountType = $accountType;
        }
     
        public function getCreditCard()
        {
            return $this->creditCard;
        }
     
        public function setCreditCard(CreditCard $creditCard)
        {
            $this->creditCard = $creditCard;
        }
    }

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 141
    Par défaut
    Euh au cas où... Les accesseurs sont bien créés?
    Le schema est correctement créé?

    Si il s'agit de ta classe entière, tu n'as pas de getId().

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut
    Citation Envoyé par KzrData Voir le message
    Euh au cas où... Les accesseurs sont bien créés?
    Le schema est correctement créé?

    Si il s'agit de ta classe entière, tu n'as pas de getId().
    Les accesseurs sont créés à la main (par moi ^^) et la BDD est correct.

    Il s'agit pour l'instant de ma classe entière pour mes tests je n'ai pas besoin de plus. Et pour le getId() je n'en ai pas besoin non plus, mais si je le créer ça ne change rien.

    j'ai fait mon schéma force avec doctrine, j'ai aussi essayer de générer la classe d'après la table, mais ça me mets toujours l'erreur, et j'ai aussi vider le cache des centaines de fois.

    Je suis complètement bloqué :d

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Par défaut
    En effet tu n'as pas getId():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /**
         * Get id
         *
         * @return integer 
         */
        public function getId()
        {
            return $this->id;
        }
    on peut voir le fichier de métadonnée générée : /doctrine/metadata/orm/Settings.orm.yml ?

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    En effet tu n'as pas getId():
    /doctrine/metadata/orm/Settings.orm.yml ?
    Le getId() ne résout rien.

    Voilà le fichier Settings.orm.yml :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    Settings:
      type: entity
      table: settings
      fields:
        id:
          id: true
          type: integer
          unsigned: false
          nullable: false
          generator:
            strategy: IDENTITY
      oneToOne:
        creditcard:
          targetEntity: Creditcard
          cascade: {  }
          mappedBy: null
          inversedBy: null
          joinColumns:
            creditCard_id:
              referencedColumnName: id
          orphanRemoval: false
        accounttype:
          targetEntity: Accounttype
          cascade: {  }
          mappedBy: null
          inversedBy: null
          joinColumns:
            accountType_id:
              referencedColumnName: id
          orphanRemoval: false
      lifecycleCallbacks: {  }

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Par défaut
    bizarre oui ! ce n'est pas un soucis de strategy de ton SGBDD?? change le nom de la stratégie de génération d'identifiant. juste pour tester les noms valides : AUTO, SEQUENCE, TABLE et NONE



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fields:
        id:
          id: true
          type: integer
          unsigned: false
          nullable: false
          generator:
            strategy: SEQUENCE
    supprime l'ancienne entité et refais les commandes de générations d'entité:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    php app/console doctrine:mapping:import monSiteSettingsBundle annotation
     
    php app/console doctrine:generate:entities monSiteSettingsBundle
    et la mise a jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php app/console doctrine:schema:update --force

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

Discussions similaires

  1. [2.x] [Symfony2][VichUploaderBundle] Mapping not found for field
    Par crazy_inf dans le forum Symfony
    Réponses: 1
    Dernier message: 04/01/2015, 15h08
  2. Réponses: 1
    Dernier message: 19/02/2014, 19h03
  3. Réponses: 5
    Dernier message: 20/05/2012, 12h49
  4. Réponses: 5
    Dernier message: 28/01/2010, 21h41

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