如何获得 Doctrine TEXT 类型?

How to get Doctrine TEXT type?

我有这个注释:

/**
 * @ORM\Column(name="notes", type="string", length=65532, nullable=true)
 */
protected $notes;

根据此文档 - http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html#id102 因为它小于 65535 应该是 TEXT?

但是该列创建为 MEDIUMTEXT。

我该如何解决这个问题?

您在文档中引用的类型不正确。在您的代码中,您有 type="string" 但您对文档的引用与 type="object".

有关

如果您在参考文档中阅读上面 table 的部分,您会看到 string 在 MySQL 中转换为 VARCHAR if length不超过 MySQL 的最大长度,如果 length 超过,则转换为 MEDIUMTEXT

但是如果您想明确获得 TEXT 字段,您需要使用 type="text".

定义您的列

您需要设置长度:

To TINYTEXT => length = 255
To TEXT => length = 65535
To MEDIUMTEXT = 16777215
Default: LONGTEXT

然后,例如,如果你需要一个类型的文本,它是必要的:

/**
* @ORM\Column(name="description", type="text", length=65535)
*/