如何获得Doctrine TEXT类型?

b85*_*411 14 mysql doctrine symfony

我有这个注释:

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

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

但该列创建为MEDIUMTEXT.

我该如何解决?

Mic*_*bov 16

您在文档中引用的类型不正确.在您的代码中,您可以type="string"参考文档type="object".

如果你在引用文档中读取的表的部分上面,你会看到string浇铸到VARCHARMySQL中,如果length没有超过MySQL的最大长度,并铸造到MEDIUMTEXT,如果length超过.

但是如果要显式TEXT字段,则需要定义列type="text".


小智 9

您需要设置长度:

To TINYTEXT => length = 255
To TEXT => length = 65535
To MEDIUMTEXT = 16777215
Default: LONGTEXT
Run Code Online (Sandbox Code Playgroud)

然后,例如,如果您需要类型文本,则有必要:

/**
* @ORM\Column(name="description", type="text", length=65535)
*/
Run Code Online (Sandbox Code Playgroud)