我使用的是Zend 2框架,我试图使用Doctrine 2获取数据。
但是,下面的错误出现在实体文件中。
Doctrine\ORM\Mapping\MappingException
没有为实体“Acl\ Entity \权限”指定标识符/主键。每个实体都必须有一个标识符/主键.
如何指定主键?
我使用以下代码。
/**
* User Permissions
*
* @ORM\Entity
* @ORM\Table(name="acl_permissions")
* @property int $id
* @property int $role_id
* @property int $resource_id
* @property string $action
*/
class Permission
{
/**
* @ORM\Column(type="integer")
*/
public $id;
/**
* @ORM\Column(type="integer")
* @ORM\OneToOne(targetEntity="Role")
* @ORM\JoinColumn(name="role_id", referencedColumnName="id")
*/
public $role;
/**
* @ORM\Column(type="integer")
* @ORM\OneToOne(targetEntity="Resource")
* @ORM\JoinColumn(name="resource_id", referencedColumnName="id")
*/
public $resource;
/**
* @ORM\Column(type="string")
*/
public $action;
public function getRole()
{
return $this->role;
}
public function getResource()
{
return $this->resource;
}
}发布于 2013-01-22 16:04:28
你查过the docs了吗
可以使用@ORM\Id注释定义主键。如果该值是自动生成的(例如,如果使用auto_increment),则还需要设置@ORM\GeneratedValue(strategy="IDENTITY")注释。
https://stackoverflow.com/questions/14462618
复制相似问题