2

Symfony2 でカスタム ドライバ オプションを設定するにはどうすればよいですか?

SET time_zone = '-04:30'この場合、接続の初期化の一部として MySQL で実行したいと考えています。

4

2 に答える 2

7

以下で設定しapp/config/config.ymlます。

doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        # Here we configure the custom driver options
        # In this case is PDO::MYSQL_ATTR_INIT_COMMAND
        # The constant can not be used in this context
        options: {1002: "SET time_zone = '-04:30'"}
于 2013-05-25T00:12:55.047 に答える
-1

とは異なり、 Symfony2 にはデフォルトのタイムゾーンを設定する構成パラメーターSymfony 1.4はありません。default_timezoneこの理由についてはよくわかりませんが、アプリ内にできるだけ多くの構成を保持したい場合は、以下のコードを使用してください。関数をオーバーライドして、デフォルトのタイムゾーン (および同様の PHP 構成) を設定しますAppKernel#init()。その親に電話することを忘れないでください。

<?php
// AppKernel.php

class AppKernel extends Kernel
{
    //..
    //.......
    //...........
    // --- Append the init function below ---

    public function init()
    {
        date_default_timezone_set( 'Asia/Kolkata' );
        parent::init();
    }
}

または、編集することができますphp.ini

datetime = 'Asia/Kolkata'

注: init メソッドはバージョン 2.3 以降非推奨であり、3.0 で削除される予定です。代わりに、コンストラクターでロジックを移動する必要があります。

public function __construct($environment, $debug)
{
    date_default_timezone_set('Asia/Kolkata');
    parent::__construct($environment, $debug);
}
于 2013-05-25T00:17:05.517 に答える