Symfony2 Doctrine2 – генерировать аннотацию Many-to-Many из существующей базы данных по доктрине: mapping: import

Я хочу генерировать объекты из существующей базы данных с помощью инструментов Doctrine для обратной инженерии

вы можете попросить Doctrine импортировать схему и построить связанные классы сущностей, выполнив следующие две команды.

1 $ php app/console doctrine:mapping:import AcmeBlogBundle annotation
2 $ php app/console doctrine:generate:entities AcmeBlogBundle

но теперь доктрина обнаруживает только отношение ManyToOne во многих сторонах только таблицы «ProviderCountry»

если мне нужно добавить отношение ManyToMany, я должен добавить аннотацию моей рукой, добавив аннотацию follwing

в Country.php добавить

 /** * * @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; 

в Provider.php добавить

  /** * @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; 

так как я могу генерировать аннотацию Many-to-Many командой doctrine [doctrine: mapping: import]

Заранее спасибо.

вы можете сделать это, добавив следующие строки в

продавец / Доктрина / ОРМ / Библиотека / Doctrine / ОРМ / Mapping / Водитель / DatabaseDriver.php

  $tables = array(); $tables[] = $schemaManager->listTableDetails("country"); $tables[] = $schemaManager->listTableDetails("provider_country"); $tables[] = $schemaManager->listTableDetails("provider"); $this->setTables($schemaManager->listTables(), $tables); 

внутри __construct

 public function __construct(AbstractSchemaManager $schemaManager) 

Примечание. Это отменяет аннотацию OneToMany.

Я бы не рекомендовал вам изменять поставщика. Вы должны изменить свою схему и сгенерировать сущности и базу данных после.

В вашем случае я бы изменил схему после создания ее из базы данных

Symfony2 Jobeet – модель данных

 manyToMany: affiliates: targetEntity: Affiliate mappedBy: categories manyToMany: categories: targetEntity: Category joinTable: name: category_affiliate joinColumns: affiliate_id: referencedColumnName: id inverseJoinColumns: category_id: referencedColumnName: id