私たちはSilexとDoctrine(ODM)でAPIを開発しており、オブジェクトStory
を持っています。これらのオブジェクトはimages
です。ODM Doctrineの遅延ロードを無効にすることはできますか?
リポジトリ内のメソッドを取得しています(AbstractRepositoryでは、他のすべてのリポジトリを継承しています)。
public function get(string $documentId) : array
{
$document = $this->createQueryBuilder()
->field('id')->equals($documentId)
->hydrate(false)
->getQuery()
->toArray();
}
この方法でオブジェクトを埋め込み、参照戻るが、データなしのIDのみreferenceMany
戻るため。
すべてのドキュメントを取得するためにレイジーローディングを拒否することはできますか?
考えられる解決策 - 書き換え方法toArray
。
確かに。 select句に必要なオブジェクトを追加するだけです。多くの例。私はodmでクエリビルダーを使用していないことを認めますが、うまくいくと思います。抽象的なものについてはわかりません。 – Cerad
@Cerad Doctrineサイトで見つかったので、例を挙げてください。 'ReferenceManyドキュメントは、選択した戦略に関係なく、遅延読み込みを可能にするコレクションとして常に扱われます。 ' – yAnTar
うわー私は実際にはできませんODMのテストケースがあります。私は - > select( 'story'、 'image')がトリックをすると思うだろうが、私は実際には分からない。また、ストーリーとイメージを明示的に結合する必要があるかもしれません。 – Cerad