onflush - symfony 使い方




DoctrineのOracleSessionInitリスナーをSymfony2で使うにはどうすればいいですか? (2)

このリンクが役に立つと思います。

Symfony 2とDoctrine 2を使ってOracleに接続する

  1. Oracleドライバのために "datetime"の代わりにDoctrineの "date"型にOracleのDATE型をマップします
  2. 最も一般的なOracleのDateおよびDateTime環境設定を使用するようにDoctrineを適切に設定します。 あなたはこれを必要とするかもしれません。 Oracleサーバーの構成を確認してください。

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

私はOracleを使用しています、そして、私はこのエラーを受けています:

データベースの値 "17-NOV-11 12.17.33 AM"をDoctrine Typeの日時に変換できませんでした。 予想されるフォーマット:Ymd H:i:s

また、Oracleはdatetimeフォーマットについて不満を持っているので、新しい行を作成することはできません。

私はMySQLの日時フォーマットとOracleのものが異なることを知っています。

symfony 2ではdoctrineリスナーを使うことができることを私は理解しています:

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

そして、この問題を解決するために作成された教義のリスナーがあります:

Doctrine / DBAL /イベント/リスナー/ OracleSessionInit.php

問題は、symfony 2でどれほど正確にあなたがそれを有効にするかです。


さて、私は今度自分で答えるつもりです。

イベントタグを使ってサービスとして追加する必要があります。

app/config/config.yml 

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

my.listenerはリスナーの任意の名前です。







doctrine