Symfony 4 и Doctrine, как создать репозиторий автоматически после сопоставления?

Все учебники, которые я нахожу, имеют репозиторий, созданный автоматически с использованием make:entity при создании новых таблиц

но я импортировал из существующей базы данных, следуя официальной документации, с помощью следующей команды: php bin/console doctrine:mapping:import App\\Entity annotation --path=src/Entity

Похоже, эта команда не создает никакого хранилища... и в документации не говорится о создании хранилища

Я знаю, что могу создать один вручную, но есть ли команда для их автоматического создания? У меня 25 таблиц.... было бы очень полезно

лень мне oO

редактировать: я также пытался php bin\console make:entity --regenerate, но я получаю no change для всех таблиц, и репозиторий не создан

Ответы

Ответ 1

РЕШЕНИЕ 1

Вы можете просто запустить

php bin\console make:entity --regenerate

Это подскажет и попросит:

Enter a class or namespace to regenerate [App\Entity]:

Просто нажмите Enter или укажите местоположение папки вашей сущности, и она создаст недостающие получатели/установщики & Хранилища.

test

---> ВНИМАНИЕ:
Если он не создает репозитории, убедитесь, что в ваших сущностях есть следующая аннотация:

/**
 * @ORM\Entity(repositoryClass="App\Repository\MyClassRepository")
 */
class MyClass
{

}

РЕШЕНИЕ 2

SymfonyMakerBundle позволяет вам создавать своих создателей. Таким образом, вы можете создать новый файл с именем make:repositories, который будет генерировать репозиторий для каждой сущности, найденной в папке /Entity.

Для этого создайте класс (MakeRepositories), который расширяет AbstractMaker в вашем каталоге src/Maker/. (документация: https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html#creating-your-own-makers)

Используйте Core Maker make:entity, чтобы помочь вам создать новую команду (так как она содержит код для создания хранилища): https://github.com/symfony/maker-bundle/blob/master/src/Maker/MakeEntity.php

Ответ 2

Не копируйте аннотацию слишком быстро, я скопировал аннотацию, но в моем случае сущности были сгенерированы автоматически, поэтому уже была строка ORM\Repository, которая появилась после, удалите ее или замените ее решением