douji4948
2014-10-18 14:27
浏览 69
已采纳

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

When I try to run php app/config doctrine:schema:update --force or just symply open my project in the web browser I get this error:

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

Manually deleted the app/cache folder but the problem remained. If I try to delete cache via command php app/console cache:clear I get the same error.

BusinessUser Entity:

<?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条回答 默认 最新

  • dongzen7263 2014-10-18 21:22
    已采纳

    Your Entity does not contain PHP docblock comments where your Doctrine Annotation is used.

    Docblocks are startet with two asterisks, otherwise it's just a simple comment.

    Change your current code

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

    to

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

    Only with /** will annotations be recognized by Doctrine.

    Check your other properties too.

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题