php - Symfony2 Doctrine2 - generate Many-To-Many annotation from existing database by doctrine:mapping:import -
i want generate entities existing database using doctrine tools reverse engineering
you can ask doctrine import schema , build related entity classes executing following 2 commands.
1 $ php app/console doctrine:mapping:import acmeblogbundle annotation
2 $ php app/console doctrine:generate:entities acmeblogbundle
but doctrine detect manytoone relation in many side "providercountry" table
if need add manytomany relation have add annotation hand adding follwing annotation
in country.php add
/** * * @var provider $provider * * @orm\manytomany(targetentity="provider") * @orm\jointable(name="provider_country", * joincolumns={@orm\joincolumn(name="countryid", referencedcolumnname="id")}, * inversejoincolumns={@orm\joincolumn(name="providerid", referencedcolumnname="id")} * ) * */ private $providers;
in provider.php add
/** * @var country $country * * @orm\manytomany(targetentity="country") * @orm\jointable(name="provider_country", * joincolumns={@orm\joincolumn(name="providerid", referencedcolumnname="id")}, * inversejoincolumns={@orm\joincolumn(name="countryid", referencedcolumnname="id")} * ) * */ private $countrys;
so how can generate many-to-many annotation doctrine command [doctrine:mapping:import]
thanks in advance.
you can add following lines in
vendor/doctrine/orm/lib/doctrine/orm/mapping/driver/databasedriver.php
$tables = array(); $tables[] = $schemamanager->listtabledetails("country"); $tables[] = $schemamanager->listtabledetails("provider_country"); $tables[] = $schemamanager->listtabledetails("provider"); $this->settables($schemamanager->listtables(), $tables);
inside __construct
public function __construct(abstractschemamanager $schemamanager)
note: override onetomany annotation.
Comments
Post a Comment