我正在尝试在Doctrine 2.1中定义一个列(使用注释),该列映射到MySQL中的固定长度CHAR列。使用fixed = true不能完成这项工作。注释
* @ORM\Column(type="string", length=49, fixed=true, nullable=false)
导致错误:“在属性[name here]上声明的注释@ORM \ Column没有名为”fixed“的属性。可用属性:name,type,length,precision,scale,unique,nullable, options,columnDefinition“。所以我假设“固定”位需要在“选项”中传递。但是怎么样?我已经浏览了Doctrine 2.1文档,但却找不到任何相关内容。
我试过
* @ORM\Column(type="string", length=49, options="fixed=true", nullable=false)
不会导致错误,但会被忽略 - 创建的列是VARCHAR(49)。
我不想使用columnDefinition。
有什么建议吗?
感谢
答案 0 :(得分:7)
正确的语法是:
@ORM\Column(type="string", length=49, options={"fixed":true}, nullable=false)
答案 1 :(得分:0)
在注释中添加FIXED数据类型需要在Doctrine中使用用户定义的函数。关于如何设置这些内容的documentation非常易读。
在Benjamin Eeberlei的DoctrineExtensions存储库中还有一个MySQL查询函数库,您可能会发现它有助于扩展Doctrine的本机功能以适应特定于MySQL的功能。
不幸的是,它不包含您正在寻找的数据类型,但它可能有助于设置您需要的模型。祝您好运,如果找到适合您的解决方案,请发布。