我正在开发一个项目,其中我们使用 Zend 2 和 Dotdom 2 以及 Oracle 数据库。
我的实体有一个日期时间类型的字段 create_date 。我的实体在下面
class Personnel
{
/**
* @ORM\Column(type="string",unique=true, nullable=false)
*/
protected $login_name;
/**
* @ORM\Column(type="datetime")
*/
protected $create_date;
public function __construct()
{
$this->create_date = new \DateTime("now");
}
public function get_login_name()
{
return $this->login_name;
}
public function set_login_name($login_name)
{
$this->login_name = $login_name;
}
}
我将这个实体保存为
$user = new Personnel();
$user->set_login_name('Admin');
$this->getEntityManager()->persist($user);
$this->getEntityManager()->flush();
但显示错误
SQLSTATE[HY000]: General error: 1843 OCIStmtExecute: ORA-01843: not a valid month
(ext\pdo_oci\oci_statement.c:148)
请帮我。
先进的谢谢
也在这里发现了这个错误...OracleSessionInit 没有被调用!
但我不知道是否缺少配置部分,或者如果您使用 oci8,它是否是教义中的错误,默认情况下不会启用该功能
edit:
刚刚找到了!我应该补充一点,您应该在 service_manager 的调用者中添加一个指向 \Doctrine\DBAL\Event\Listeners\OracleSessionInit 的服务,所以它应该是这样的:
'invokables' => array(
'oracle-session-init' => '\Doctrine\DBAL\Event\Listeners\OracleSessionInit'
),
和这个:
'doctrine' => array (
'driver' => array (
/** here are your driver settings, such as annotations configs */
),
'eventmanager' => array(
'orm_default' => array(
'subscribers' => array('oracle-session-init')
)
)
),
学分至:http://raymondkolbe.com/2012/06/19/doctrineormmodule-and-oraclesessioninit/ http://raymondkolbe.com/2012/06/19/doctrineormmodule-and-oraclesessioninit/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)