2011-01-14 26 views
3

"set names"クエリを実行するためにSymfony2(symfony-reloaded)yml設定ファイルでDBAL/Doctrine2を設定する方法は誰も知っていますか?この質問は他の場所で聞かれましたが、私は正解を見つけることができませんでした。文字セットを設定するためにsymfony2経由でDBALを設定

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

そのような設定オプションがない場合、どのように私はこの使用してPHPを実行することができますか?それとも、Symfony2プロジェクトのどこでこれを行うのが正しいですか?

答えて

4

これはまだできません。私はこれを可能にすることに取り組んでいます、すぐに可能になるでしょう。

+0

ありがとうございました!上のリンクの例では、作者はこの種の設定を行っています。これは良い場所になると思いますか?私は、symfony2/doctrine2/mysqlを使ってutf8を行ういくつかの方法があると思います! – Paul

+1

OK、このためのパッチは何日か前のSymfonyに適用された、構文は次のようになります。 doctrine.dbal: 接続: デフォルト: 文字セット:UTF-8 – beberlei

+0

私は私がしなければならないのsymfonyのを、使用していません次にエンコーディングを設定しますか?現在、私はPDOの属性で '\ PDO :: MYSQL_ATTR_INIT_COMMAND =>" SET NAMES utf8 "'を使用していますが、最良の解決策のようには見えません。 –

1

この問題に遭遇する可能性のある他の人のためだけです。これは私がやったことです:

私は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; 
} 

だから、毎回、私はもちろん、今DoctrineControllerをサブクラス化している(私のコントローラでEntityManagerまたはリポジトリにアクセスしたいのです)私は電話する

$this->getEntityManager() 

resp。

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

これは 'DoctrineControllerTrait'の方が優れています。 :) – juanmf

関連する問題