[英]How do I set a MysQL variable (time_zone) from within doctrine / symfony?
[英]How to make Symfony2 set the MySQL time_zone?
如何在Symfony2中设置自定义驱动程序选项?
在这种情况下,我想在MySQL中运行SET time_zone = '-04:30'
作为连接初始化的一部分。
在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'"}
与Symfony 1.4
不同,Symfony2中没有default_timezone
配置参数来设置默认时区。 我不确定造成这种情况的原因,但是如果您希望在应用程序中保留尽可能多的配置,请使用下面的代码。 通过覆盖AppKernel#init()
函数来设置默认时区(以及任何类似的PHP配置)。 记住给它的父母打电话。
<?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'
注意:从2.3版开始, 不推荐使用 init方法,该方法将在3.0版中删除。 您必须改为在构造函数中移动逻辑:
public function __construct($environment, $debug)
{
date_default_timezone_set('Asia/Kolkata');
parent::__construct($environment, $debug);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.