我正在使用oracle,我收到了这个错误:
无法将数据库值“17-NOV-11 12.17.33 AM”转换为Doctrine Type datetime。预期格式:Y-m-d H:i:s
此外,我无法创建新行,因为oracle抱怨日期时间格式。
我知道mysql的datetime格式和oracle的格式不同。
我知道你可以使用symfony 2的教义听众:
http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html
并且,有一个学说监听器来解决这个问题:
学说/ DBAL /活动/听众/ OracleSessionInit.php
问题是如何在symfony 2中完全启用它。
答案 0 :(得分:17)
好吧看来我这次会回答自己。
您必须使用事件标记将其添加为服务。
app/config/config.yml
services:
my.listener:
class: Doctrine\DBAL\Event\Listeners\OracleSessionInit
tags:
- { name: doctrine.event_listener, event: postConnect }
my.listener是侦听器的任意名称。
答案 1 :(得分:8)
在我看来,Oracle是第二个连接(存储在 oracle 键下)。 该应用程序还使用了PostgreSQL(存储在默认键下)。
问题是Listener是在默认数据库(PostgreSQL)上执行的。 所以我将代码更改为:
services:
my.oracle.listener:
class: Doctrine\DBAL\Event\Listeners\OracleSessionInit
tags:
- { name: doctrine.event_listener, event: postConnect, connection: oracle }
一切正常!
答案 2 :(得分:-2)
我认为此链接可以帮助您:
使用Symfony2和Doctrine 2连接到Oracle。
https://gist.github.com/johnkary/6481664#file-oracledoctrinetypemappinglistener-php