有一个zf2骨架应用程序,带有一些实体的DoctrineORM,一切正常。
现在,当我尝试添加"类别"实体:
namespace Me\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="me_category")
*/
class Category
{
/**
* @var int
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
* @ORM\Column(type="string", length=255, unique=true)
*/
protected $name;
public function getId()
{
return $this->id;
}
public function setId($id)
{
$this->id = (int)$id;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = (string) $name;
}
}
但是这给了我以下错误:
Fatal error: require_once(): Cannot redeclare class me\entity\category in App/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php on line 197
我认为这是因为Category.php需要两次。 所以我通过添加一个"后卫来获得临时解决方案。在Category.php中
if (defined('CATEGORY_GUARD')) return;
define('CATEGORY_GUARD', true);
这有效,但当然不是它应该如何完成。 任何人都知道为什么这个实体需要两次?