Tous les tutoriels que je trouve ont un référentiel créé automatiquement avec make:entity
lors de la création de nouvelles tables
mais j'ai importé à partir d'une base de données existante en suivant le documentation avec la commande suivante: php bin/console doctrine:mapping:import App\\Entity annotation --path=src/Entity
Cette commande ne semble créer aucun référentiel ... et la documentation ne parle pas de la génération d'un référentiel
Je sais que je peux en créer un manuellement, mais existe-t-il une commande pour les générer automatiquement? J'ai 25 tables .... Serait très utile
paresseux moi oO
edit: j'ai aussi essayé php bin\console make:entity --regenerate
mais je reçois no change
sur toutes les tables et aucun référentiel créé
SOLUTION 1
Vous pouvez simplement courir
php bin\console make:entity --regenerate
Cela incitera et demandera:
Enter a class or namespace to regenerate [App\Entity]:
Appuyez simplement sur Entrée ou spécifiez l'emplacement de votre dossier d'entité, et cela créera les référentiels getters/setters manquants.
---> AVERTISSEMENT:
Si les référentiels ne sont pas créés, assurez-vous que vous avez les annotations suivantes dans vos entités:
/**
* @ORM\Entity(repositoryClass="App\Repository\MyClassRepository")
*/
class MyClass
{
}
SOLUTION 2
SymfonyMakerBundle vous permet de créer vos propres décideurs. Vous pouvez donc en créer un nouveau appelé make:repositories
qui générera un référentiel pour chaque entité trouvée dans le dossier/Entity.
Pour ce faire, créez une classe (MakeRepositories) qui étend AbstractMaker dans votre src/Maker/
répertoire. (documentation: https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html#creating-your-own-makers )
Utilisez le fabricant de base make:entity
pour vous aider à créer votre nouvelle commande (car elle contient le code pour générer un référentiel): https://github.com/symfony/maker-bundle/blob/master/src/Maker/MakeEntity.php
Ne copiez pas l'annotation trop rapidement, j'ai copié l'annotation, mais dans mon cas, les entités ont été générées automatiquement. Il existait donc déjà une ligne ORM\Repository apparaissant après, supprimez-la ou remplacez-la par la solution.