Doctrine 2.1 @Column注释中“options”的语法是什么?

时间:2011-10-26 13:36:47

标签: doctrine doctrine-orm

我正在尝试在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。

有什么建议吗?

感谢

2 个答案:

答案 0 :(得分:7)

正确的语法是:

@ORM\Column(type="string", length=49, options={"fixed":true}, nullable=false)

答案 1 :(得分:0)

在注释中添加FIXED数据类型需要在Doctrine中使用用户定义的函数。关于如何设置这些内容的documentation非常易读。

在Benjamin Eeberlei的DoctrineExtensions存储库中还有一个MySQL查询函数库,您可能会发现它有助于扩展Doctrine的本机功能以适应特定于MySQL的功能。

不幸的是,它不包含您正在寻找的数据类型,但它可能有助于设置您需要的模型。祝您好运,如果找到适合您的解决方案,请发布。