問題タブ [doctrine-mongodb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
214 参照

php - Doctrine-MongoDB postLoad は、新しいドキュメントの作成時に preUpdate をトリガーします

いくつかの暗号化されたフィールドを持つモデルがあり、postLoad でフィールドの暗号化を解除し (うまく機能します)、新しいドキュメント (読み取りを追跡するためのログ) を作成しようとします。

私の問題は、新しいログ ドキュメントをこの postLoad にフラッシュすると、モデルの preUpdate がトリガーされ、その理由がわかりません。モデルは変更されていません (ハイドレートされた暗号化されたフィールドは NotSaved です)。変更されたとしても、postLoad に別の更新をトリガーするべきではありませんか?

アイデアをありがとう。

(alcaeus/mongo-php-adapter を使用した php 7.1)。

EDIT:いくつかの精度を追加:

postLoadListener :

uncryptDocument メソッドは、暗号化されたパラメーターのシリアル化された json を復号化し、それでドキュメントをハイドレートします。これらのパラメーターは @ODM\NotSaved です。したがって、ドキュメントは更新されるべきではありません。

logManager->record は、新しいログ ドキュメント (CryptedDocumentInterface を実装していません) を作成し、それを永続化します。ご覧のとおり、postLoad にフラッシュされます。

ログを見ると、ログ ドキュメントが正しく挿入され、その後、読み取った暗号化されたドキュメントに対して preUpdate がトリガーされます。preUpdate は次のとおりです。

0 投票する
0 に答える
31 参照

php - ParameterNotFound: DoctrineMongoDBBundle のマッピング タイプとして staticphp を使用することへの依存関係がありません

ドキュメントstaticphpに記載されているように、マッピング タイプとして使用しようとしましたが、構成を からに更新するとすぐに、ドライバーに "doctrine_mongodb.odm.metadata.staticphp.class" というサービスが見つからないというエラーが表示されます。annotationstaticphp

ParameterNotFoundException HTTP 500 内部サーバー エラー サービス "doctrine_mongodb.odm.default_staticphp_metadata_driver" は、存在しないパラメーター "doctrine_mongodb.odm.metadata.staticphp.class" に依存しています。「doctrine.orm.metadata.php.class」、「doctrine.orm.metadata.staticphp.class」、「doctrine_mongodb.odm.configuration.class」、「doctrine_mongodb.odm.event_manager.class」のいずれかを意味しますか? 、「doctrine_mongodb.odm.cache.array.class」、「doctrine_mongodb.odm.cache.apc.class」、「doctrine_mongodb.odm.cache.apcu.class」、「doctrine_mongodb.odm.cache.memcache.class」、「 doctrine_mongodb.odm.cache.xcache.class", "doctrine_mongodb.odm.metadata.driver_chain.class", "doctrine_mongodb.odm.metadata.annotation.class",

ベンダー ファイルを手動で参照しても、odm-package 内の xml-one と default-annotation-driver 以外のドライバーはまったく見つかりません。何か不足していますか?