Php symfony2条令未触发后连接事件

Php symfony2条令未触发后连接事件,php,symfony,doctrine,Php,Symfony,Doctrine,我试图在symfony2项目中使用Oracle10g数据库 一切正常,但当我尝试在表中插入带有日期列的行时,出现以下错误: [PDOException]SQLSTATE[HY000]:一般错误:1850 OCISSTMTEXECUTE: ORA-01850:ORA-01850:小时必须介于0和23之间 (ext\pdo_oci\oci_statement.c:148) 根据这一点,可以通过在条令中的事件管理器中添加条令\DBAL\Event\Listeners\OracleSessionInit

我试图在symfony2项目中使用Oracle10g数据库

一切正常,但当我尝试在表中插入带有日期列的行时,出现以下错误:

[PDOException]SQLSTATE[HY000]:一般错误:1850 OCISSTMTEXECUTE: ORA-01850:ORA-01850:小时必须介于0和23之间 (ext\pdo_oci\oci_statement.c:148)

根据这一点,可以通过在条令中的事件管理器中添加条令\DBAL\Event\Listeners\OracleSessionInit类来修复此错误

app/config/config.yml 

services:
    my.listener:
        class: Doctrine\DBAL\Event\Listeners\OracleSessionInit 
        tags:
            - { name: doctrine.event_listener, event: postConnect }
我尝试过这个解决方案,但对我无效。因此,我在控制器中手动将侦听器添加到eventManager:

public function indexAction()
    {
        $product= new Product();
        $product->setCreationDate(new \DateTime());
        $this->getDoctrine()->getConnection()->getEventManager()->addEventSubscriber($this->get('my.listener'));
        $em->persist($product);
        $em->flush();
        return array();
    }
这是工作,但这不是真的优雅,我不想这样做与我所有的控制器

所以我的听众似乎工作正常。在我看来,要么从未触发后连接事件,要么我的config.yml错误,侦听器设置不正确

如果能帮上点忙,我将不胜感激


谢谢。

谢谢你。我可以根据您的建议调试事件管理器,我发现我的侦听器没有列出。因此,我再次检查了config.yml,结果发现它的格式不正确(缺少2个空白字符)


不管怎样,现在一切都好了,非常感谢您的帮助。

谢谢您的帮助。我可以根据您的建议调试事件管理器,我发现我的侦听器没有列出。因此,我再次检查了config.yml,结果发现它的格式不正确(缺少2个空白字符)

无论如何,现在一切都好了,非常感谢您的帮助。

四处调试以查看是否列出了事件侦听器。我猜这和默认的连接参数有关。调试以查看是否列出了事件侦听器。我猜这与默认的连接参数有关。