Tengo el siguiente ORM Symfony entidad con sólo propiedades :

<?php

namespace Evr\HomeBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name="ev_article")
 * @ORM\Entity
 */
class Article
{
    /**
     *
     * @ORM\Column(name="article_id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * 
     * @ORM\ManyToOne(targetEntity="Subategory",inversedBy="articles")
     * @ORM\JoinColumn(name="subcategory_id",referencedColumnName="id")
     */
    private $subcategory;


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

    /**
     * 
     * @ORM\Column(type="text")
     */
    private $content;

    /**
     * 
     * @ORM\Column(type="text")
     */
    private $exclusive_content;

    /**
     * 
     * @ORM\Column(type="date")
     */
    private $creation_date;


     /**
     * 
     * @ORM\Column(type="integer")
     */
    private $views;

    /**
     * 
     * @ORM\Column(type="integer")
     */
    private $votes;


}

Quiero generar los setters y getters de forma automática, por lo que ejecutar el siguiente comando :

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

Y cada vez que me hacen esto, se muestra el siguiente mensaje de error :

  [Doctrine\ORM\Mapping\MappingException]
  Class "Evr\HomeBundle\Entity\Article" is not a valid entity or mapped super
   class.



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

No sé por qué no generar entidades, es algo equivocado en la entidad/anotaciones?

InformationsquelleAutor SmootQ | 2014-01-23

7 Comentarios

  1. 11

    Intentar eliminar esta entidad y la regeneración de ellos con el siguiente comando:

    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"

    Y, a continuación, agregue manualmente:

    /**
     * 
     * @ORM\ManyToOne(targetEntity="Subategory",inversedBy="articles")
     * @ORM\JoinColumn(name="subcategory_id",referencedColumnName="id")
     */
    private $subcategory;
    • hizo que modificar algo? porque el problema persiste incluso con su modificación.
    • Me quite subcategory anotación
    • Ok, he actualizado respuesta, se intenta generar esta entidad, por favor. Es este trabajo?
    • No, no generar captadores de tendencias… Usted dijo que quitó la subcategoría de anotación? allí está todavía en la respuesta
    • Lo siento, no prestar atención, Que en realidad se quita un @ de todas las anotaciones…que ellos desactivates
    • comparar con el código. Me quite @ símbolo, por lo que la anotación de ignorados
    • Pero el problema persiste, incluso si usted eliminar anotaciones
    • Ok, entiendo. Así que por favor trate de crear vacío ArticleRepository y agregar en la anotación como en mi actualización
    • He creado un repositorio vacío, y he añadido el repositorio de anotación, pero fue en vano…no funciona todavía
    • Intentar cambiar ORM\Column(type="string",length=255). 255 es máxima
    • El problema todavía persiste, incluso con longitud=255 .. de todas formas, muchas gracias por tu ayuda @vector (+1)
    • Es realmente extraño cómo el problema no está resuelto todavía
    • O usted puede eliminar de esta entidad y la regeneración de ellos con 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"
    • Okey, voy a darle una oportunidad.
    • Muchas gracias, se generan las propiedades, además de los getters y setters. Voy ahora a añadir a la subcategoría de propiedad.
    • Mejor Respuesta (puede editar su respuesta, y poner el comando ahí, de modo que los lectores se sabe cuál fue la solución)
    • Ok. He actualizado

  2. 40

    tratar :

    app/console doctrine:generate:entities EvrHomeBundle:Article

    Si usted está usando symfony 3.0 o superior, a continuación, substitue aplicación con bin:

    bin/console doctrine:generate:entities EvrHomeBundle:Article

    Si usted está usando symfony 4+ entonces :

    bin/console make:entity --regenerate 
    • Yo lo intenté, no importa que el comando a utilizar, el problema persiste.
    • hmmm he copiado/pegado su código de entidad y cambiar el espacio de nombres para que se ajuste a uno de mis proyectos y trabajó muy bien.
    • Eso es realmente extraño !. Tengo muchas otras clases que tienen relaciones con esta entidad. Como Subcategoría, que a su vez tiene una relación con la clase de la Categoría
    • borrar la caché y volver a intentarlo. también para detectar errores de asignación ejecutar php app/console doctrine:mapping:info
    • He borrado la caché y volver a intentar : pero el problema persiste…cuando ejecuto el comando doctrine:mapping:info , muestra 1 mensaje (1 asignan Entidades) la entidad asignada es la entidad de Usuario… (De hecho, tengo más de 5 entidades del grupo, aunque se mostró a solo 1 entidad asignada)
    • +1 por tu respuesta, muchas gracias azizoujab 🙂

  3. 10
    php bin/console doctrine:generate:entities AppBundle

    Que esto va a generar todos los getters y setters de forma automática en su entidad archivos.

    Si quieres ser específico acerca de las tablas, a continuación, utilizar esta:

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

    Sustituto «NOMBRE_TABLA» con el nombre de la tabla.

    • Muchas gracias por tomarse el tiempo para añadir otra respuesta. Esta respuesta también es otra solución de trabajo, +1 .. hice esta pregunta hace 3 años 🙂 el Mejor !
    • Son bienvenidos. 🙂
    • La solución que funciona para mí en Symfony 3.4, +1, me puede decir por qué Symfony no el documento en cualquier lugar?
  4. 3

    Ser carreful también para el ORM, a contar a generar getters/setters:

    /**
     * @var date
     *
     * @ORM\Column(name="creation_date", type="date")
    
     */
    • Muchas gracias por tomarse el tiempo para agregar otra pregunta, funciona demasiado +1 🙂 hice esta pregunta hace 3 años. Saludos !
  5. 3

    Asignación de importación ( a partir de base de datos )

    _> php bin/console doctrine:mapping:import 'AppBundle\Entity' yml --path=src/AppBundle/Resources/config/doctrine

    Generar Entityes de asignación, pero sin getters y setters

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

    O

    Generar Entityes de mapeo con getters y setters

    _> php bin/console doctrine:generate:entities AppBundle/Entity
    • Gracias, la pregunta es viejo, pero su respuesta sería de gran utilidad +1
  6. 2

    Pensamiento de la falta * es la solución

    Pero en mi caso, mientras que la creación de la entidad desde el símbolo del sistema que he preferido el Formato de Configuración para ser YML, en lugar de Anotaciones.

    Ahora lo que estoy haciendo es dar la asignación de comandos de uso de anotaciones, por lo que no está funcionando.

    Intente configurar Resources/config/Categoría.orm.yml como:

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

    Y Cambiar el Resources/config/Producto.orm.yml como:

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

    Y siento que no es un bug, pero una mejor comprensión!

    • Muchas gracias por tomarse el tiempo para esta solución de trabajo. Hice esta pregunta hace 3 años. Deseo lo Mejor ! +1

Dejar respuesta

Please enter your comment!
Please enter your name here