我使用string(32)
而不是integer
实体id
字段(它模拟 guid 类型)。但是在从实体 ids 字段类型创建数据库表后设置为varchar(32)
. 我认为这不是最好的主意,guid
总是长度 = 32,所以char
类型会更合适。
有没有办法告诉 Doctrine 使用char
或唯一的方法是在数据库中手动更改它?
我使用string(32)
而不是integer
实体id
字段(它模拟 guid 类型)。但是在从实体 ids 字段类型创建数据库表后设置为varchar(32)
. 我认为这不是最好的主意,guid
总是长度 = 32,所以char
类型会更合适。
有没有办法告诉 Doctrine 使用char
或唯一的方法是在数据库中手动更改它?
尽管althaus解决方案效果很好,但我认为这应该是规范的做法:
带注释:
/**
* @Column(type="string", length=2, options={"fixed" = true})
*/
protected $country;
使用 YAML(ID 和非 ID 字段的示例):
Your\Nice\Entity:
id:
id:
type: string
length: 32
options:
fixed: true
fields:
country:
type: string
length: 2
options:
fixed: true
- options : 附加选项数组:
fixed
:布尔值,用于确定字符串列的指定长度是固定的还是可变的(仅适用于字符串/二进制列,可能并非所有供应商都支持)。
您可以告诉 Doctrine 使用供应商特定的字段类型:
/**
* @Column(type="string", columnDefinition="CHAR(2) NOT NULL")
*/
protected $country;