우리는 Silex와 Doctrine (ODM)을 사용하여 API를 개발 중이며 images
속성을 가진 Story
개체가 있습니다.ODM Doctrine에 대한 지연로드를 비활성화 할 수 있습니까?
우리는 (다른 모든 저장소를 확장하는) AbstractRepository의 저장소에 메소드를 가져 왔습니다.
public function get(string $documentId) : array
{
$document = $this->createQueryBuilder()
->field('id')->equals($documentId)
->hydrate(false)
->getQuery()
->toArray();
}
이 방법 객체 임베디드 및 참조 반환하지만 referenceMany
반환 데이터가없는 ID 만합니다.
모든 문서를 가져 오기 위해 지연로드를 거부 할 수 있습니까?
가능한 해결책은 재 작성 방법 toArray
입니다.
확인합니다. 원하는 객체를 select 절에 추가하기 만하면됩니다. 많은 예제. odm과 함께 쿼리 빌더를 사용하지 않았지만 작동한다고 가정합니다. 그리고 저는 추상적 인 것들에 대해 확신하지 못합니다. – Cerad
@Cerad Doctrine 사이트에서 발견했기 때문에 예제를 제공해 주시겠습니까 'ReferenceMany 문서는 선택한 전략에 관계없이 지연로드를 허용하기 위해 항상 컬렉션으로 처리됩니다. ' – yAnTar
위시하지만 실제로는 할 수 없습니다. ODM 테스트 케이스가 있습니다. 나는 select ('story', 'image')가 트릭을 할 것이라고 생각하지만 실제로는 모른다. 그리고 스토리와 이미지에 명시 적으로 참여해야 할 수도 있습니다. – Cerad