doctrine-orm - 原则 2 中没有为实体指定标识符/主键

标签 doctrine-orm entity zend-framework2

我正在使用 Zend 2 Framework 并尝试使用 Doctrine 2 获取数据。

然而,实体文件中出现以下错误。

Doctrine\ORM\Mapping\MappingException

没有为实体“Acl\Entity\Permission”指定标识符/主键。每个实体都必须有一个标识符/主键。

如何指定主键?

我正在使用以下代码。

/**
 * 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;
    }
}

最佳答案

你检查过了吗the docs

您可以使用 @ORM\Id 注释定义主键。如果值是自动生成的(例如,如果使用 auto_increment),您还需要设置 @ORM\GeneratedValue(strategy="IDENTITY") 注释。

关于doctrine-orm - 原则 2 中没有为实体指定标识符/主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462618/

相关文章:

Symfony2/Doctrine2-空间 : Class 'Contains' is not defined

doctrine-orm - DDD、Doctrine2、聚合和 ArrayCollection : how to isolate the domain model?

mysql - Symfony2 - 在 json 响应中从我的数据库 MySQL 更改字符

entity-framework - Symfony 2.3 使用选择或其他类型将自定义数据传递给实体表单

entity-framework - 如何避免规则形式的业务逻辑贫乏的领域模型

c# - Entity Framework 生成错误的 SQL

zend-framework2 - 如何在 Zend2 的删除查询中使用 limit 和 order by

mysql - Entity Framework - MySQL - 日期时间格式问题

php - Zend InputFilter 需要国际 PHP 扩展吗?

php - 在 Zend Framework 2.0 的 Controller 中更改布局