Doctrine 2.1 @Column 注释中“选项”的语法是啥?

Posted

技术标签:

【中文标题】Doctrine 2.1 @Column 注释中“选项”的语法是啥?【英文标题】:What is syntax for "options" in Doctrine 2.1 @Column annotation?Doctrine 2.1 @Column 注释中“选项”的语法是什么? 【发布时间】:2011-10-26 13:36:46 【问题描述】:

我正在尝试在 Doctrine 2.1(使用注释)中定义一个映射到 mysql 中固定长度 CHAR 列的列。使用 fixed=true 并不能完成这项工作。注释

* @ORM\Column(type="string", length=49, fixed=true, nullable=false)

它会导致错误:“在属性 [name here] 上声明的注释 @ORM\Column 没有名为“fixed”的属性。可用属性:名称、类型、长度、精度、比例、唯一性、可为空,选项,列定义”。所以我假设需要在“选项”中传递“固定”位。但是怎么做?我搜索了 Doctrine 2.1 文档,但找不到任何关于此的内容。

我试过了

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

不会导致错误,但会被忽略 -- 创建的列是 VARCHAR (49)。

我不想使用 columnDefinition。

有什么建议吗?

谢谢

【问题讨论】:

【参考方案1】:

正确的语法是这样的:

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

【讨论】:

有人告诉我为什么要找到这样一个秘密信息。问题是两年前的问题......正是当我需要信息时,上帝才在 16 小时前派帕特里克来到这里与我分享这个!谢谢!【参考方案2】:

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

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

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

【讨论】:

以上是关于Doctrine 2.1 @Column 注释中“选项”的语法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Doctrine 2.2 ORM:查找扩展实体

教义 2.1 - 日期时间问题

Doctrine2 - 注释 vs yml / xml

使用 YAML 的 Doctrine2 和 Symfony2 的默认列值?

Doctrine Column not found: 1054 Unknown column 's.features' in 'field list''

Doctrine 2.1 性能问题