没有指定标识符错误Symfony2 Doctrine ORM映射

时间:2014-10-18 14:27:11

标签: php symfony orm doctrine-orm doctrine

当我尝试运行php app/config doctrine:schema:update --force或者只是在Web浏览器中打开我的项目时,我收到此错误:

MappingException: No identifier/primary key specified for Entity "Registration\BusinessBundle\Entity\BusinessUser". Every Entity must have an identifier/primary key.

手动删除app / cache文件夹,但问题仍然存在。如果我尝试通过命令php app/console cache:clear删除缓存,我会收到相同的错误。

BusinessUser实体:

<?php
namespace Registration\BusinessBundle\Entity;

//use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="business_user")
 */
class BusinessUser
{
    /*
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /*
     * @ORM\Column(type="string", length=255)
     */
    protected $surname;

    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * Set surname
     *
     * @param string $surname
     * @return BusinessUser
     */
    public function setSurname($surname)
    {
        $this->surname = $surname;

        return $this;
    }
    /**
     * Get surname
     *
     * @return string
     */
    public function getSurname()
    {
        return $this->surname;
    }
}

1 个答案:

答案 0 :(得分:0)

您的实体不包含使用Doctrine Annotation的PHP docblock注释。

Docblocks是带有两个星号的startet,否则它只是一个简单的注释。

更改您当前的代码

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

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

仅使用/ **才能通过Doctrine识别注释。

检查您的其他属性。