每次我创建一个属性类型为Entity
的新string
时,每当我希望更新数据库时,都会收到错误消息:
SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥太长;默认值为0。最大密钥长度为767字节
现在这是许多人面临的事情,原因是
described here。我了解我的问题所在,可以通过赋予属性@ORM\Column(type="string", length=191)
来解决。
我必须为架构中的每个string type
设置长度为191。尽管可以在(配置)配置文件中将字符串的默认长度设置为191,所以有什么方法可以使我不必每次都更改此设置吗?
我不想更改为utf8 。
答案 0 :(得分:-1)
在Symfony中,您不能更改字符串的默认长度。您应该在Mysql配置中将其设置为默认值。
但是我建议在编写实体时始终设置所需的长度
/**
* @ORM\Column(type="string", length=512)
*/
private $name;