2011-11-17 38 views
13

Estoy utilizando Oracle y estoy recibiendo este error:Cómo usar Doctrine OracleSessionInit oyente con Symfony2?

Could not convert database value "17-NOV-11 12.17.33 AM" to Doctrine Type datetime. Expected format: Y-m-d H:i:s

También no puedo crear nuevas filas debido a las quejas del oráculo sobre el formato de fecha y hora.

Sé que el formato de fecha y hora de mysql y el oráculo son diferentes.

entiendo que se puede utilizar oyentes doctrina con Symfony 2:

http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html

Y, hay un oyente doctrina creada para solucionar este problema:

Doctrina/DBAL/Evento/oyentes/OracleSessionInit.php

La pregunta es ¿cómo es exactamente su turno en Symfony 2.

+0

Gracias, me salvaste tanto tiempo !!! Nota: esto parece funcionar también con Symfony 3 –

Respuesta

15

Bueno Parece que me responderé esta vez.

Tiene que agregarlo como un servicio usando la etiqueta de evento.

app/config/config.yml 

services: 
    my.listener: 
     class: Doctrine\DBAL\Event\Listeners\OracleSessionInit 
     tags: 
      - { name: doctrine.event_listener, event: postConnect } 

my.listener es un nombre arbitrario para el oyente.

7

En mi caso Oracle fue una segunda conexión (almacenado en oráculo clave). La aplicación también usó PostgreSQL (almacenado bajo clave predeterminada).

El problema fue que Listener se ejecutó en la base de datos predeterminada (PostgreSQL). Así que cambió el código para:

services: 
    my.oracle.listener: 
     class: Doctrine\DBAL\Event\Listeners\OracleSessionInit 
     tags: 
      - { name: doctrine.event_listener, event: postConnect, connection: oracle } 

Y todo funciona bien!

-2

creo que este enlace le ayudará a:

Conexión a Oracle con Symfony2 y Doctrina 2.

  1. Mapa de Oracle tipo DATE a "fecha" de Doctrina tipo en lugar de "fecha y hora" para Oracle controlador
  2. Configura apropiadamente Doctrine para usar las configuraciones de entorno Oracle Date y DateTime más comunes. Puede o no necesitar esto. Compruebe la configuración del servidor de Oracle

https://gist.github.com/johnkary/6481664#file-oracledoctrinetypemappinglistener-php

+0

Un enlace a una posible solución siempre es bienvenido, pero por favor [agregue contexto alrededor del enlace] (// meta.stackoverflow.com/a/8259) para que los demás usuarios tengan algo de idea de qué se trata y por qué está allí. Siempre cite la parte más relevante de un enlace importante, en caso de que el sitio objetivo no esté disponible o esté permanentemente fuera de línea. Tenga en cuenta que ser * apenas más que un enlace a un sitio externo * es una [posible razón para que su respuesta sea eliminada] (// stackoverflow.com/help/deleted-answers). –

Cuestiones relacionadas