我有这个注释:
/**
* @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。
我该如何解决这个问题?
答案 0 :(得分:14)
您在文档中引用的类型不正确。在您的代码中,您有type="string"
,但您对文档的引用与type="object"
。
如果您在引用的文档中阅读了上表中的部分,那么如果string
未超过MySQL的最大长度,则会在MySQL中将VARCHAR
转换为length
,并且如果MEDIUMTEXT
超过,则投放到length
。
但是如果您想明确TEXT
字段,则需要使用type="text"
定义列。
答案 1 :(得分:2)
您需要设置长度:
To TINYTEXT => length = 255
To TEXT => length = 65535
To MEDIUMTEXT = 16777215
Default: LONGTEXT
然后,例如,如果您需要输入文字,则有必要:
/**
* @ORM\Column(name="description", type="text", length=65535)
*/