更改symfony中继承(连接)的类中的默认身份列名称

问题描述 投票:0回答:1

我使用了类表继承,因此我的实体“图像”继承自“媒体”实体。此过程在图像表中创建一个自动生成的列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不存在,或无法自动加载。

symfony inheritance key default identity
1个回答
0
投票

你是这个意思吗?

/**
* @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 
     ....

}
© www.soinside.com 2019 - 2024. All rights reserved.