validate tutorial symfony2 generate espaƱol entitymanagerinterface consultas symfony annotations doctrine getter-setter

tutorial - findall symfony 3



GeneraciĆ³n de captadores y definidores de entidades en Symfony/Doctrine ORM (7)

Intenta eliminar esta entidad y regenéralas 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 luego agregar manualmente:

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

Tengo la siguiente entidad ORM Symfony con solo 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 setters y getters automáticamente, entonces ejecuto el siguiente comando:

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

Y cada vez que hago esto, 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 genera entidades, ¿hay algún error en la entidad / anotaciones?


Mapeo de importación (desde la base de datos)

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

Generar entidades a partir del mapeo pero sin captadores y definidores.

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

O

Generar entidades a partir del mapeo con captadores y definidores

_> php bin/console doctrine:generate:entities AppBundle/Entity


Pensé que la falta * es una de las soluciones.

Pero en mi caso, al crear la entidad desde el símbolo del sistema, preferí que el formato de configuración fuera YML, en lugar de anotaciones.

Ahora lo que estoy haciendo es dar comandos de mapeo usando anotaciones, así que no está funcionando.

Intente configurar Resources / config / Category.orm.yml como:

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

Y cambia los recursos / config / Product.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 error sino una mejor comprensión!


Tenga cuidado también con el ORM, para contar para generar captadores / setters:

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



tratar :

app/console doctrine:generate:entities EvrHomeBundle:Article

Si estás usando Symfony 3.0 o superior, entonces sustituye la aplicación por bin:

bin/console doctrine:generate:entities EvrHomeBundle:Article

Si estás usando Symfony 4+ entonces:

bin/console make:entity --regenerate


php bin/console doctrine:generate:entities AppBundle

Esto generará todos los captadores y configuradores necesarios automáticamente en sus archivos de entidad.

Si quieres ser específico acerca de las tablas, usa esto:

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

Sustituye "TABLE_NAME" con el nombre de tu tabla.