当我尝试运行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;
}
}
答案 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识别注释。
检查您的其他属性。