Générer des Getters D'entités et des Setters en Symfony / Doctrine ORM

j'ai le texte suivant ORM Symfony entité avec seulement propriétés :

<?php

namespace EvrHomeBundleEntity;

use DoctrineORMMapping as ORM;

/**
 * @ORMTable(name="ev_article")
 * @ORMEntity
 */
class Article
{
    /**
     *
     * @ORMColumn(name="article_id", type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * 
     * @ORMManyToOne(targetEntity="Subategory",inversedBy="articles")
     * @ORMJoinColumn(name="subcategory_id",referencedColumnName="id")
     */
    private $subcategory;


    /**
     * 
     * @ORMColumn(type="string",length=512)
     */
    private $title;

    /**
     * 
     * @ORMColumn(type="text")
     */
    private $content;

    /**
     * 
     * @ORMColumn(type="text")
     */
    private $exclusive_content;

    /**
     * 
     * @ORMColumn(type="date")
     */
    private $creation_date;


     /**
     * 
     * @ORMColumn(type="integer")
     */
    private $views;

    /**
     * 
     * @ORMColumn(type="integer")
     */
    private $votes;


}

je veux générer des setters et des getters automatiquement, donc j'exécute la commande suivante:

app/console doctrine:generate:entities Evr/HomeBundle/Entity/Article

Et à chaque fois que je fais cela, il affiche le message d'erreur suivant :

  [DoctrineORMMappingMappingException]
  Class "EvrHomeBundleEntityArticle" is not a valid entity or mapped super
   class.



doctrine:generate:entities [--path="..."] [--no-backup] name

Je ne sais pas pourquoi il ne génère pas d'entités, est-ce que quelque chose ne va pas dans l'entité/annotations?

19
demandé sur SmootQ 2014-01-23 22:57:11

6 réponses

Essayez de supprimer cette entité et les recréer avec la commande suivante:

php app/console doctrine:generate:entity --entity="EvrHomeBundle:Article" --fields="name:string(255) content:text exclusive_content:text creation_date:date views:integer votes:integer"

puis ajouter manuellement:

/**
 * 
 * @ORM\ManyToOne(targetEntity="Subategory",inversedBy="articles")
 * @ORM\JoinColumn(name="subcategory_id",referencedColumnName="id")
 */
private $subcategory;
9
répondu Victor Bocharsky 2014-01-23 20:20:46

essaie :

app/console doctrine:generate:entities EvrHomeBundle:Article

si vous utilisez symfony 3.0 ou plus alors remplacez app avec bin:

bin/console doctrine:generate:entities EvrHomeBundle:Article
35
répondu zizoujab 2018-08-28 15:31:38
php bin/console doctrine:generate:entities AppBundle

cela générera tous les getters et les setters nécessaires automatiquement dans vos fichiers entity.

Si vous voulez être précis sur les tables, puis utiliser ceci:

php bin/console doctrine:generate:entities AppBundle:"TABLE_NAME"

Remplacer "TABLE_NAME" avec le nom de votre table.

8
répondu jcoder 2017-08-19 10:36:28

attention aussi à l'ORM, à compter de générer les getters/setters:

/**
 * @var date
 *
 * @ORM\Column(name="creation_date", type="date")

 */
2
répondu aurny2420289 2017-02-17 12:52:17

Utilisation:

orm:générer des entités dest-path

Exemple dans la console:

doctrine orm:generate-entities --generate-annotations="true" destination_path

Source:http://wildlyinaccurate.com/useful-doctrine-2-console-commands/

1
répondu Muhammed Tanrıverdi 2016-02-05 14:40:46

Pensais que les disparus * est l'un de la solution

mais dans mon cas, lors de la création de l'entité à partir de l'invite de commande, j'ai préféré que le Format de Configuration soit YML, au lieu d'Annotations.

maintenant ce que je fais c'est donner des commandes de mappage en utilisant des annotations, donc ça ne marche pas.

essayez de configurer Resources/config / Category.orm.yml:

AppBundle\Entity\Category:
    type: entity
    table: null
    repositoryClass: AppBundle\Repository\CategoryRepository
    oneToMany:
        products:
            targetEntity: Product
            mappedBy: Category

et changer les ressources/configuration / Produit.orm.yml:

AppBundle\Entity\Product:
    type: entity
    table: null
    repositoryClass: AppBundle\Repository\ProductRepository
    manyToOne:
        category:
            targetEntity: Category
            inversedBy: products
            joinColumn:
                name: category_id
                referenceColumnName: id

Et j'ai l'impression ce n'est pas un insecte mais une meilleure compréhension!

1
répondu Abhinav Bhardwaj 2016-05-02 16:46:01