Doctrine 2中的简单索引定义

时间:2016-12-21 14:04:56

标签: php indexing doctrine-orm annotations

是否有简单的方法在列上定义非唯一索引?

当我定义唯一索引时,这是完全足够的:

/** @ORM\Entity */
class Foo {
    /** @ORM\Column(type="string", unique=true) */
    private $foo;
}

但是,对于非唯一索引,我需要一堆样板:

/**
 * @ORM\Entity
 * @ORM\Table(indexes={@Index(name="foo_idx", columns={"foo"})})
 */
class Foo
{
    /** @ORM\Column(type="string") */
    private $foo;
}

我更喜欢单个属性上的@ORM\Index注释,或index=true等...

1 个答案:

答案 0 :(得分:0)

我不得不让你失望......

@ORM\Table(indexes={@Index(name="foo_idx", columns={"foo"})})

就像注释一样简单。

如果$foo是相关实体,它将自动编入索引,但对于索引字段,您需要像添加索引一样添加索引。

您可以找到所有@Column属性here in the Doctrine 2 documentation。可悲的是index不在其中。

也许您可以发出功能请求here on GitHub