Php Can';t在Symfony中创建索引列

Php Can';t在Symfony中创建索引列,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我之前创建了一个包含多列的表。其中有一个类型为longtext的“消息”列。我想通过为“message”列创建索引来修改我的表。我更改了实体,并在bash上使用命令更新表。不幸的是,我收到了这个错误消息 An exception occurred while executing 'CREATE INDEX message_idx ON project (message)':SQLSTATE[42000]: Syntax error or access violation: 1170 BLOB

我之前创建了一个包含多列的表。其中有一个类型为
longtext
的“消息”列。我想通过为
“message”
列创建索引来修改我的表。我更改了实体,并在bash上使用命令更新表。不幸的是,我收到了这个错误消息

An exception occurred while executing 'CREATE INDEX message_idx ON 
project (message)':SQLSTATE[42000]: Syntax error or access violation: 
1170 BLOB/TEXT column 'message' used in key specification without a key 
length      
我想指出,我一直在寻找做这种手术的方法。这就是我在我这边所做的

索引:

 * @ORM\Table(indexes={@ORM\Index(name="message_idx",columns={"message"},options={"length"=255})})
列:

 /**
 * @var String $message
 * @ORM\Column(name="message", type="text",length=255,nullable=true,options={"default": "NULL"})
 */
private $message;
试一试

/**
 * @ORM\Entity
 * @ORM\Table(indexes={@ORM\Index(name="message_idx",columns={"message"}, options={"length": 255})})
 */
class Test
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
    * @ORM\Column(name="message", type="string", length=255,nullable=true)
    */
    private $message;

}
当您使用文本类型作为索引时,您需要定义长度,“文本”类型没有长度,因此您需要使用“字符串”和长度


我想你根本无法用条令注释定义文本索引的长度。是的@u_mulder..在简历中,错误是MySQL错误,而不是条令错误。是的,我知道。你的解决方案对我有效。谢谢你@Cuchu