3

Zend 2 Frameworkを使用しており、Doctrine2を使用してデータを取得しようとしています。

ただし、次のエラーがエンティティファイルに表示されます。

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;
    }
}
4

1 に答える 1

7

ドキュメントを確認しましたか?

@ORM\Idアノテーションを使用して主キーを定義できます。値が自動的に生成される場合 (例: を使用する場合auto_increment)、@ORM\GeneratedValue(strategy="IDENTITY")注釈も設定する必要があります。

于 2013-01-22T16:04:28.737 に答える