Я использовал наследование таблиц классов, чтобы моя сущность "изображение" наследовала от сущности "медиа". эта процедура создает автоматически сгенерированный идентификатор столбца в таблице изображений. Как я могу изменить это имя по умолчанию "id", чтобы установить его "media_id", чтобы столбец изображения имел столбец "media_id" вместо "id"? вот мой код:
namespace App\Entity\OldApp;
use Doctrine\ORM\Mapping as ORM;
use \App\Entity\OldApp\TemplateContent;
/**
* @ORM\Entity(repositoryClass="App\Repository\OldApp\MediaRepository")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"media" = "Media", "image" = "Image"})
*/
class Media
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer",name="CAT_id")
*/
private $id;
/**
* @ORM\Column(name="filename", type="string", length=100, nullable=false)
*/
private $filename;
/**
* @ORM\Column(name="size", type="string", length=30, nullable=false)
*/
private $size;
/**
* @ORM\Column(name="date", type="datetime", nullable=false)
*/
private $date;
/**
* @ORM\Column(name="high", type="boolean", nullable=false)
*/
private $high = '0';
namespace App\Entity\OldApp;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\OldApp\ImageRepository")
*/
class Image extends Media
{
/**
* @ORM\Column(type="string", length=3)
*/
private $extension;
private static $type='image' ;
/**
* @ORM\Column(type="string", length=50)
*/
private $ratio;
/**
* @ORM\Column(type="smallint")
*/
private $height;
/**
* @ORM\Column(type="smallint")
*/
private $width;
}
я пытался добавить @PrimaryKeyJoinColumn(name="person_id")
Bellow @ORM \ Entity, но я выдал следующую ошибку
Ошибка
[Семантическая ошибка] Аннотация "@Doctrine \ ORM \ Mapping \ PrimaryKeyJoinColumn" в классе App \ Entity \ OldApp \ Image не существует или не может быть автоматически загружена.