我使用了类表继承,因此我的实体“图像”继承自“媒体”实体。此过程在图像表中创建一个自动生成的列ID。如何更改此默认名称“ 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")
波纹管@ORM \ Entity,但出现以下错误
错误
[语义错误] App \ Entity \ OldApp \ Image doe类中的注释“ @Doctrine \ ORM \ Mapping \ PrimaryKeyJoinColumn”s不存在,或无法自动加载。
你是这个意思吗?
/**
* @ORM\Entity(repositoryClass="App\Repository\OldApp\ImageRepository")
*/
class Image extends Media
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer",name="media_id")
*/
private $id;
// reste of the code
....
}