2016-07-19 1 views
0

selon Symfony 3 docs après l'exécution de 3 commandes:Symfony 3 Doctrine MySQL - générer des entités avec annotations @ORM

php bin/console doctrine:mapping:import --force AcmeBlogBundle xml 
php bin/console doctrine:mapping:convert annotation ./src 
php bin/console doctrine:generate:entities AcmeBlogBundle 

je devrais obtenir le résultat de quelque chose comme:

// src/Acme/BlogBundle/Entity/BlogComment.php 
namespace Acme\BlogBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Acme\BlogBundle\Entity\BlogComment 
* 
* @ORM\Table(name="blog_comment") 
* @ORM\Entity 
*/ 
class BlogComment 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="bigint") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $id; 

    /** 
    * @var string $author 
    * 
    * @ORM\Column(name="author", type="string", length=100, nullable=false) 
    */ 
    private $author; 
    ..... 

malheureusement au lieu de Je reçois une classe à peu près mappée avec des getters et setters ressemblant à:

<?php 
namespace Clashers\PanelBundle\Entity; 

/** 
* Users 
*/ 
class Users 
{ 
    /** 
    * @var string 
    */ 
    private $username; 

    /** 
    * Set username 
    * 
    * @param string $username 
    * 
    * @return Users 
    */ 
    public function setUsername($username) 
    { 
     $this->username = $username; 

     return $this; 
    } 

    /** 
    * Get username 
    * 
    * @return string 
    */ 
    public function getUsername() 
    { 
     return $this->username; 
    } 

avez fait face à un tel problème et l'avez résolu sans devoir assigner manuellement chaque propriété au type de DB, colonne? Y a-t-il des paramètres Doctrine que j'ai manqués pour générer correctement ces entités?

+0

Est-il possible que vous ayez exécuté ces séquences ou quelque chose d'autre? Envisagez de supprimer les fichiers de mappage XML générés ainsi que les fichiers d'entité et d'essayer à nouveau. – Cerad

+0

Avez-vous vérifié votre table d'utilisateurs de base de données? Cela devrait refléter la structure de votre table. Si votre table n'est pas configurée correctement, cela pourrait être la raison. – Sarcoma

+0

Et vous aurez certainement besoin de supprimer les fichiers de mappage XML générés. – Sarcoma

Répondre

1

OK, problème résolu. Je viens de réexécuter une fois de plus ces commandes et en quelque sorte je viens de manquer une erreur qui a été causée par avoir déjà créé l'entité Utilisateurs. Cela va probablement empêcher la doctrine de la création d'autres entités et en cours d'exécution dernière commande

php bin/console doctrine:generate:entities AcmeBlogBundle 

sans entièrement traitées

php bin/console doctrine:mapping:convert annotation ./src 

se terminera avec annotations manquantes comme je l'ai eu.