通过Symfony2配置DBAL来设置字符集

问题描述:

有没有人知道在Symfony2(symfony-reloaded)yml配置文件中配置DBAL/Doctrine2来执行“set names”查询的方法?这个问题已经在其他地方问过了,但是我找不到正确的答案。通过Symfony2配置DBAL来设置字符集

http://fossplanet.com/f6/%5Bsymfony-users%5D-symfony2-sandbox-database-collation-49626/

如果没有这样的配置选项,我怎么能实现这个使用PHP?或者更好:Symfony2项目的正确位置在哪里?

这是不可能的。我正在努力允许这项工作早日实现。

+0

感谢您的回应!在上面链接的例子中,作者正在其他地方进行这种配置,你能想象一下这会是一个好地方吗?我想用symfony2/doctrine2/mysql做一些utf8的工作! – Paul 2011-01-15 09:51:44

+1

OK,这个补丁是前几天应用于Symfony的,语法是: doctrine.dbal: 连接: 默认: 字符集:UTF-8 – beberlei 2011-01-20 08:27:13

好的,只是对于任何其他人可能遇到这个问题。这是我做过什么:

我结束了继承Symfony\Bundle\FrameworkBundle\Controller\Controller和介绍的方法getEntityManager:所以每次

public function getEntityManager() 
{ 
    $em = $this->get('doctrine.orm.entity_manager'); 
    static $utf8_set = false; 
    if (!$utf8_set) { 
     $em->getEventManager()->addEventSubscriber(new MysqlSessionInit('utf8','utf8_unicode_ci')); 
     $utf8_set = true; 
    } 
    return $em; 
} 

我要访问我的控制器EntityManager或储存库(当然,现在继承DoctrineController )我打电话

$this->getEntityManager() 

resp。

$this->getEntityManager()->getRepository('What\Ever\Entity\I\Am\Looking\For')