Я использую Symfony 4 и с Doctrine, где у меня есть сущности, которые имеют одинаковые общие атрибуты, такие как созданные при редактировании, когда, ...
Я бы хотел сделать следующее:
Определение вида базовой сущности, которая содержит эти общие атрибуты и реализует установщик и получатель. И многие сущности, которые наследуются от этой базовой сущности. Все поля базы данных должны быть определены в таблице соответствующего подобъекта (в БД не следует создавать супер-таблицы или тому подобное).
Пример:
/**
* @ORM\Entity(repositoryClass="App\Repository\BaseRepository")
*/
class Base
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=127, nullable=true)
*/
private $createdWhen;
// Getter and setter
...
}
/**
* @ORM\Entity(repositoryClass="App\Repository\PersonRepository")
*/
class Person extends Base
{
/**
* @ORM\Column(type="string", length=127, nullable=true)
*/
private $name;
// Getter and setter
...
}
/**
* @ORM\Entity(repositoryClass="App\Repository\CarRepository")
*/
class Car extends Base
{
/**
* @ORM\Column(type="string", length=127, nullable=true)
*/
private $brand;
// Setter and getter
...
}
Это должно создать таблицы "person" и "car" (каждая с id, create_when), но без таблицы.
Я все еще хотел бы иметь возможность использовать bin / console make: миграцию для обновления схемы базы данных.
Возможен ли такой подход в Symfony 4? Если да, как бы я определил сущности и что я должен изменить с точки зрения конфигурации и т. Д .?