我对 symfony2 和教义还很陌生,最近遇到了一个我无法修复的索引问题。
这是我的经验.yml:
Test\PersoBundle\Entity\Experience:
type: entity
repositoryClass: Thibanir\PersoBundle\Repository\ExperienceRepository
table: experience
indexes:
exp:
columns: [slug,company_id,begin_date,end_date,is_current]
type: unique
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
type:
type: string
length: 255
begin_date:
type: datetime
end_date:
type: datetime
nullable: true
is_current:
type: boolean
default: false
title:
type: string
length: 255
description:
type: text
slug:
type: string
length: 255
manyToOne:
company:
targetEntity: Company
inversedBy: companies
joinColumn:
name: company_id
referencedColumnName: id
当我查看mysql中生成的索引时,我可以看到它,但是Unique标志设置为False
当我查看有关创建索引的教义文档时,我看到的语法的唯一区别是我反转了关键字Fields
and Columns
。我这样做是因为我在本教程中学到了它。
如果我尝试反转两个关键字以匹配此语法:
indexes:
exp:
fields: [slug,company_id,begin_date,end_date,is_current]
type: unique
id:
id:
type: integer
generator: { strategy: AUTO }
columns:
type:
type: string
length: 255s:
[...]
当我发出php app/console doctrine:schema:update --force
以下错误时:
[ErrorException]
Notice: Undefined index: columns in /home/test/Project/perso/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php line 199
这是我的两个问题:
- Doctrine 中的字段和列有什么区别(我在他们的网站上找不到答案)?
- 如何在多个列上创建唯一索引?
非常感谢你的帮助