Я пытаюсь создать пакет, предоставляющий Doctrine сущностям с их базовым отображением c в качестве аннотаций. Я следую за ответом для Symfony2 здесь . Но, к сожалению, этот подход не срабатывает в моей настройке Symfony4, жалуясь на существующие таблицы.
Пакет должен предоставлять такую сущность
//lib/MyCompany/CompanyBundle/Entity/Company.php
<?php
namespace MyCompany\CompanyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Company
*
* @ORM\Entity
* @ORM\Table(name="company")
*/
class Company
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
}
Я хотел бы использовать эту сущность внутри моего проекта как таковой:
//src/Entity/Company.php
<?php
namespace App\Entity;
use MyCompany\CompanyBundle\Entity\Company as BaseEntity;
/**
* Company
*
* @ORM\Entity
* @ORM\Table(name="company")
*/
class Company extends CompanyBase
{
// Adding here addtional features and database fields.
}
Вывод схемы приводит к
The table with name 'company' already exists.
Я бы хотел избежать создания сущностей дважды и создания расширенной сущности только один раз. (Приятным бонусом было бы то, что базовая сущность создается, если ее переопределение / расширение не создано.)
Есть ли способ аннотировать сущность без использования MappedSuperclass
или resolve_target_entities
в doctrine.yaml
чтобы достичь этого?
Любая помощь очень ценится.