Saltar al contenido

Symfony 4 y Doctrine, ¿cómo generar un repositorio automáticamente después del mapeo?

Solución:

SOLUCION 1

Simplemente puedes correr

php binconsole make:entity --regenerate

Esto le indicará y solicitará:

Enter a class or namespace to regenerate [AppEntity]:

Simplemente presione Entrar o especifique la ubicación de la carpeta de su entidad, y creará captadores / configuradores y repositorios faltantes.

prueba

—> ADVERTENCIA:

Si no crea los repositorios, asegúrese de tener la siguiente anotación en sus entidades:

/**
 * @ORMEntity(repositoryClass="AppRepositoryMyClassRepository")
 */
class MyClass
{

}

También es posible que desee limpia tu caché si no está funcionando (como lo señaló @Pavel Petrov en los comentarios)

SOLUCION 2

SymfonyMakerBundle te permite crear tus propios creadores. Entonces podrías hacer uno nuevo llamado make:repositories que generará un repositorio para cada entidad que se encuentre en la carpeta / Entity.

Para hacer eso, cree una clase (MakeRepositories) que amplíe AbstractMaker en su src/Maker/ directorio. (documentación: https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html#creating-your-own-makers)

Utilice el fabricante de núcleos make:entity para ayudarlo a crear su nuevo comando (ya que contiene el código para generar un repositorio): https://github.com/symfony/maker-bundle/blob/master/src/Maker/MakeEntity.php

Después de generar sus clases de entidad desde la base de datos, agregue la siguiente anotación a cada una de sus entidades:

@ORMEntity(repositoryClass="AppRepositoryClassNameRepository")

Para generar las clases del repositorio, ejecute el siguiente comando:

php bin/console make:entity --regenerate App

Cómo generar entidades a partir de una base de datos existente

Nombre de la tabla: CamelCase (por ejemplo: table_name será TableName)

php bin/console doctrine:mapping:import App\Entity annotation --path=src/Entity --filter="TableName"

Cómo generar entidades

Ejecute el comando debajo, creará un archivo de entidad.

php bin/console make:entity --regenerate

A continuación, vaya a su archivo de entidad y agregue @ORMEntity repositoryClass

Ejemplo Archivo de entidad

/**
 * XXXXXX
 *
 * @ORMTable(name="XXXX")
 * @ORMEntity(repositoryClass="AppRepositoryXXXXRepository")
 */

class XXXXX {

Vuelva a ejecutar este comando nuevamente y creará un repositorio para usted.

php bin/console make:entity --regenerate

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *