Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过Symfony2配置DBAL以设置字符集_Php_Mysql_Utf 8_Doctrine Orm_Symfony - Fatal编程技术网

Php 通过Symfony2配置DBAL以设置字符集

Php 通过Symfony2配置DBAL以设置字符集,php,mysql,utf-8,doctrine-orm,symfony,Php,Mysql,Utf 8,Doctrine Orm,Symfony,有人知道如何在Symfony2(symfony重载)yml配置文件中配置DBAL/Doctrine2以执行“set names”查询吗?其他地方也有人问过这个问题,但我找不到正确的答案 如果没有这样的配置选项,我如何使用PHP实现它?或者更好:在Symfony2项目中,哪里是正确的位置来执行此操作?这还不可能。我正在努力让这个问题尽快解决。好的,只针对可能遇到这个问题的其他人。这就是我所做的: 我最终对Symfony\Bundle\FrameworkBundle\Controller\Cont

有人知道如何在Symfony2(symfony重载)yml配置文件中配置DBAL/Doctrine2以执行“set names”查询吗?其他地方也有人问过这个问题,但我找不到正确的答案


如果没有这样的配置选项,我如何使用PHP实现它?或者更好:在Symfony2项目中,哪里是正确的位置来执行此操作?

这还不可能。我正在努力让这个问题尽快解决。

好的,只针对可能遇到这个问题的其他人。这就是我所做的:

我最终对
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
或控制器中的存储库(当然现在是
doctrineControl
的子类)时,我调用

分别

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

谢谢你的回复!在我上面链接的例子中,作者正在其他地方进行这种配置,你能想象一下什么地方适合这样做吗?我想一定有办法用symfony2/doctrine2/mysql实现utf8!?好的,这方面的补丁几天前应用于Symfony,语法是:doctrine.dbal:connections:default:charset:UTF-8I没有使用Symfony,那么我必须在哪里设置编码?目前,我在PDO的属性中使用了
\PDO::MYSQL\u ATTR\u INIT\u COMMAND=>“SET NAMES utf8”
,但它看起来不是最好的解决方案。在
DoctrineControllerTrait
中,这会更好一些
$this->getEntityManager()->getRepository('What\Ever\Entity\I\Am\Looking\For')