0

Doctrine DQLフックを使用してmysql AES_ENCRYPT(および)への呼び出しを追加することにより、特定のデータベースフィールドを暗号化しようとしています。AES_DECRYPT

SQLSELECTの場合preDqlSelect()、クラスにがあります。これは、選択フィールドの各パラメーターを調べ、暗号化されDoctrine_Record_Listenerたフィールドのを追加します。AES_DECRYPT()

ただし、 Doctrinesave()モデルクラスを呼び出すと、preSave()リスナーのみが呼び出され、preDql*リスナーは呼び出されないように見えます。

誰かがこれを機能させる方法またはこれを行うためのより良い方法を提案できますか?

ありがとう

4

1 に答える 1

0

これらの dql コールバックをチェックするには、明示的にオンにする必要があります。これにより、クエリごとに少量のオーバーヘッドが追加されるため、デフォルトではオフになっています

$manager->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, true);

Doctrine 1.2 イベントリスナー

于 2011-05-10T13:41:48.493 に答える