我使用 ORM 版本 2.20.1 和迁移 3.3.1。在带有 php8.2 的 Symfony6 项目中。
我的实体具有以下属性:
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
class CompanyDetail
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(type: Types::STRING, length: 255)]
private string $name;
#[ORM\Column(type: Types::TEXT, length: 65535)]
private string $registration;
[...]
当我使用通常的
bin/console do:mi:di
创建迁移文件时,注册字段的列始终是 VARCHAR(500),如下所示:registration VARCHAR(500) NOT NULL,
实现文本栏的正确设置是什么?
我做了以下事情,让它以某种方式发生: 我升级了所有学说包:
"doctrine/annotations": "^2.0.2",
"doctrine/dbal": "^4.2.1",
"doctrine/doctrine-bundle": "^2.13.1",
"doctrine/doctrine-fixtures-bundle": "^4.0.0",
"doctrine/doctrine-migrations-bundle": "^3.3.1",
"doctrine/orm": "^3.3.1",
然后我将属性定义为没有任何长度的文本:
#[ORM\Column(type: Types::TEXT)]
private string $registration;
这在迁移中给了我一个 LONGTEXT 字段。这比我需要的要长得多,但由于这是一张小桌子,我就拿它吧。
但是,如果有人知道如何创建文本字段,我仍然会很感激。