2017-05-16 1 views
0

this 매핑 전략을 구현하려고합니다. id 및 다른 필드를 사용하여 추상 클래스를 정의했습니다. 계속해서 오류가 계속 발생합니다 :추상 클래스에 지정된 식별자/기본 키가 없습니다.

No identifier/primary key specified for Entity "AppBundle\Entity\AbstractItem". Every Entity must have an identifier/primary key. (500 Internal Server Error)

이것은 내 수업입니다. 당신이 볼 수 있듯이, 고유 식별자 $id

use Doctrine\ORM\Mapping as ORM; 

/** 
    * @ORM\Entity 
    * @ORM\InheritanceType("JOINED") 
    * @ORM\DiscriminatorColumn(name="type", type="string") 
    * @ORM\DiscriminatorMap({"post" = "Post", "group" = "Group"}) 
    */ 
class AbstractItem 
{ 
    /** 
     * @var int 
     * 
     * @ORM\Id 
     * @ORM\GeneratedValue(strategy="IDENTITY") 
     */ 
    private $id; 

    /** 
     * @var \DateTime 
    */ 
    protected $published; 
    protected $object; 
    protected $target; 

    /** 
     * @return mixed 
     */ 
    public function getId() 
    { 
     return $this->id; 
    } 
} 
+1

'$ id'의 가시성을'protected'로 설정하려고 했습니까? –

+0

Doctrine은 매핑 된 수퍼 클래스 개념을 사용하여 추상 엔티티 클래스를 처리합니다. http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html#inheritance-mapping – Cerad

+0

@ JakubMatczak 도움이되지 않았다. 나는 여전히 동일한 오류가 발생했습니다 – blahblah

답변

0

지정이 추상 클래스는 데이터베이스의 실제 엔티티해서는 안됩니다. 이것 대신에

/** 
* @var int 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

:

봅니다 시도 대신

+0

'Doctrine \ ORM \ Mapping \ MappingException] 매핑 된 수퍼 클래스에서 상속 정보를 정의 할 수 없습니다. 오류 – blahblah

+0

정말 상속 유형과 그 아래에 내용이 필요합니까? 나는 그것의 목적이 무엇인지 이해하지 못한다. – Daniella

+0

나는이 매핑 전략을 구현하려고 시도했다 : http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html# 클래스 테이블 상속 – blahblah

0

@ORM \ 법인의이하시기 바랍니다 @ORM \ MappedSuperClass을 넣어

/** 
    * @var int 
    * 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
private $id; 

을 당신은 열 ID를 지정해야 inside comment

관련 문제