2013-08-10 6 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 аннотаций. 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' – Ryall

0

В моем случае, что случилось это:

Я создаю файл сущности, и поместить его в каталог сущностей, со схемой базы данных.

Но вот что я создал, создал файл YML для объекта и поместил его в Resource/config/doctrine без схемы. Symfony искал схему внутри YML. Как только я удалил YML-файл, схема в файле сущности работала нормально.

Смежные вопросы