Doctrine 2.1和表utf-8编码

Krz*_*zos 6 php database doctrine-orm


有人能告诉我如何强制Doctrine用UTF-8编码创建数据库表utf8_polish_ci吗?我的Doctrine配置文件有这个db配置参数:

$conn = array(
    'driver' => 'pdo_mysql',
    'dbname' => 'test',
    'user' => 'root',
    'password' => '*****',
    'charset' => 'utf8',
    'driverOptions' => array(1002=>'SET NAMES utf8'));
Run Code Online (Sandbox Code Playgroud)

尽管如此,它仍然使用默认编码创建表:latin1latin1_swedish_ci.

hak*_*kre 7

您在数据库中设置它,doctrine只使用数据库默认值.从Doctrine 2.1 FAQ中查看此问题:

4.1.1.如何为MySQL表设置charset和collat​​ion?

您无法在注释,yml或xml映射文件中设置这些值.要使数据库使用默认的字符集和排序规则,您应该将MySQL配置为使用默认字符集,或者使用字符集和排序规则详细信息创建数据库.这样,它们就会继承到所有新创建的数据库表和列.