我正在使用zend框架和原理2.1进行开发。
我已经从数据库中生成了实体。
但问题是:规则不能识别我的索引。它们根本不会在实体注释中进行标记。
当我使用validate-schema并从orm:schema-tool:update --dump-sql
转储sql时,它会生成sql来删除整个数据库中的所有索引。
我发现Doctrine有以下注释用于定义索引:
indexes={@index(name="index_name",
columns={"database_column1","database_column2"}
)}
但是这允许我为多个列定义一个索引,而我实际上并不需要这样做。
我想要的是能够在多个列上定义多个索引,每列一个索引。
有什么办法可以做到这一点吗?有没有办法让我的注解定义多个索引。
发布于 2011-11-16 03:07:52
我会说你可以在索引属性中插入多个索引(但我还没有时间测试它):
indexes={
@ORM\Index(name="index_name", columns={"database_column1","database_column2"}),
@ORM\Index(name="index_name2", columns={"database_column1"}),
@ORM\Index(name="index_name3", columns={"database_column2"})
}
希望这能对你有所帮助
发布于 2014-01-31 04:52:44
下面是一个示例:
/**
* @Entity
* @Table(name="serial_number",indexes={
* @index(name="product_idx", columns={"product_id"}),
* })
*/
class SerialNumber { // Entity Class
/**
* @var int
*
* @Id
* @GeneratedValue
* @Column(type="integer")
*/
protected $id;
/**
* @Column(name="created_at", type="datetime")
* @var \DateTime
* */
protected $created;
/**
* @Column(name="updated_at", type="datetime")
* @var \DateTime
* */
protected $updated;
/**
* @Column(name="product_id", type="integer")
*/
protected $productID;
}
https://stackoverflow.com/questions/8141309
复制相似问题