Resusable Doctrine Сущности в Symfony4 Bundle - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь создать пакет, предоставляющий 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 чтобы достичь этого?

Любая помощь очень ценится.

...