Nek*_*cer 3 php symfony doctrine-orm
我得到了一个像这样的字段的实体:
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, unique=true)
*/
private $name;
Run Code Online (Sandbox Code Playgroud)
但是,如果我试图修改名称从"测试"到"测试"的错误,我得到一个错误,这个名字已经被采取!知道为什么会这样吗?一个独特的索引案例是否具有影响力?
你的问题是因为你有utf8_general_ci整理注意_ci这意味着不区分大小写,反过来这意味着数据库对待"Test","test","TEst"等相同.
你将不得不更改列排序规则在数据库中手动utf8_bin,或utf8_xxx_ CS(其中xxx是语言的名字),如果你碰巧有一个所需的语言.
来自Doctrine ORM FAQ:
4.1.1.如何为MySQL表设置charset和collation?
您无法在注释,yml或xml映射文件中设置这些值.要使数据库使用默认的字符集和排序规则,您应该将MySQL配置为使用默认字符集,或者使用字符集和排序规则详细信息创建数据库.这样,它们就会继承到所有新创建的数据库表和列.
| 归档时间: |
|
| 查看次数: |
2436 次 |
| 最近记录: |