10
votes

Comment générer une entité de la table existante dans Symfony2?

J'ai une table "my_table" avec certains champs. Je veux générer une entité dans mybundle utilisé "my_table". Mais je ne veux pas recréer toutes les entités à MyBundle. Comment puis-je faire cela?


4 Réponses :


16
votes

Voici la façon dont vous pouvez le faire,

première étape forte>, demandez à la doctrine d'intrigité à la base de données et de générer les fichiers de métadonnées XML ou YML correspondants. p> xxx pré>

deuxième étape strong>, demandez à la doctrine d'importer le schéma et de créer des classes d'entité associées en exécutant les deux commandes suivantes. P>

php app/console doctrine:mapping:import MyBundle [xml|yml|annotation] --filter=MyTable

php app/console doctrine:generate:entities Path\To\MyBundle\EntityFolder\\MyTable


1 commentaires

Dans la commande finale, j'ai pu utiliser le raccourci mybundle: MyTable au lieu de chemin \ to \ mybundle \ entityfolder \\ myTable



2
votes
php app/console doctrine:mapping:import "MyCustomBundle" xml --filter=MyMatchedEntity

0 commentaires

6
votes

Solution de travail simple pour Symfony 2.7 Option Annotation et pour [/ XML / YML] Voir http://symfony.com/doc/current/cookebook/doctrine/réverse_engineering.html

DO 3 commandes en 3 étapes:

Commande n ° 1: xxx

sortie:

Écrire C: \ xampp \ htdocs \ localxyz \ src \ appbundle / ressources / config / doctrine / réunion.orm.xml


Commande n ° 2: xxx

sortie:

Entité de traitement "Réunion"

Exportation d'informations de mappage "Annotation" sur "C: \ Xampp \ htdocs \ localxyz \ src \ entité"


Commande n ° 3: xxx

sortie:

Entité génératrice "AppBundle \ Entity \ réunion" Générer AppBundle \ Entity \ Réunion

où:

appbundle est exactement votre "AppBundle" en 2.7 Symfony La réunion est la table cible (sensible à la casse)

pour être sûr, cochez ce répertoire:

C: \ xampp \ htdocs \ myProj \ src \ appbundle / ressources / config / doctrine / Réunion.orm.xml

C: \ XAMPP \ htdocs \ myProj \ src \ appbundle / ressources / config / doctrine / reséoriginal.orm.xml

et en vous assurant que vous n'avez que. Fichiers XML pour la table Vous souhaitez créer des fichiers de classe d'entités et aucun autre.

Cela fonctionne très bien pour moi.

Pour expliquer s'il vous plaît lire: http://symfony.com/doc/current/cookebook/doctrine/reverse_engineering.html


1 commentaires

Cela fonctionnera pour un gestionnaire d'entité par défaut.Si vous devez retirer les données d'une autre base de données, fournissez ensuite le nom de la mange de paramètre ci-dessous.



1
votes

Bien que ce soit un ancien poste, mais si quelqu'un obtient une erreur suivante, la base de données

n'a aucune information de mappage.

chèque

< Strong> Si votre nom de table est blog_post alors dans l'option de filtrage, utilisez blogpost et non blog_post

: https://stackoverflow.com/a/27019561/6504104

Bien que cela soit couvert par Réponses ci-dessus mais je l'ai manquée et obtenait cette erreur

donc je voulais rendre cette explicite

aussi dans symfony> = 3.4 Son PHP BIN / CONSOLE par exemple xxx

et ensuite xxx

merci ...


0 commentaires