2013-08-10 16 views
8

私はPeticion実体を持っていますが、次のエラー表示されますので、何かが欠けている:これは、エンティティはませ識別子/主キーが(...)すべてのエンティティを持っていないとしなければならない識別子/プライマリキー

No identifier/primary key specified for Entity (...) Every Entity must have and identifier/primary key 

ですコード:

<?php 

namespace Project\UsuarioBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Peticion 
* 
* @ORM\Table(name="peticion") 
* @ORM\Entity 
*/ 
class Peticion 
{ 
    /** 
    * 
    * @ORM\Id 
    * @ORM\ManyToMany(targetEntity="Project\UsuarioBundle\Entity\Usuario", inversedBy="usuNick2") 
    * @ORM\JoinTable(name="USUARIO", 
    *  joinColumns={@ORM\JoinColumn(name="USU_NICK_1", referencedColumnName="USU_NICK")}, 
    *  inverseJoinColumns={@ORM\JoinColumn(name="USU_NICK_2", referencedColumnName="USU_NICK")} 
    *  ) 
    */ 
    private $usuNick1; 

    /** 
    * 
    * @ORM\Id 
    * @ORM\ManyToMany(targetEntity="Project\UsuarioBundle\Entity\Usuario", mappedBy="usuNick1")) 
    */ 
    private $usuNick2; 

    /** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="PET_FECHA", type="date", nullable=false) 
    */ 
    private $fecha; 

答えて

15

あなたはIDフィールドを指定し、他の@ORM\Id注釈を削除する必要があります。 DoctrineドキュメントのIdentifiers/Primary Keys私の場合は

Every entity class needs an identifier/primary key. You designate the field that serves as the identifier with the @Id marker annotation.

/** 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 
+3

これは正しくありません。Doctrineは複合ID(複数のID)で動作し、変数は '$ id'である必要はありません – Ryall

0

、何が起こったことは、このでした:私は実体ファイルを作成し、データベーススキーマで、実体ディレクトリの中に入れ

しかし、ここではエンティティ用のYMLファイルを作成し、それをスキーマなしでResources/config/doctrineに入れました。 SymfonyはYML内のスキーマを探していました。一度YMLファイルを削除すると、エンティティファイルのスキーマは正常に機能しました。

関連する問題