doctrine 2 쿼리 작성기에서 index by를 사용할 수 있습니까? 그렇다면 올바른 구문은 무엇입니까?Doctrine 2 쿼리 빌더 및 인덱스 by
답변
은 다음 절에서 인덱스를 수동으로 주입을 사용하여, querybuilder를 사용하여 하나 개의 솔루션입니다. 이런 식으로 할 수 있습니다.
$qb = $entityManager->createQueryBuilder();
$qb->from($repository->getClassName(), 'a', 'a.id');
$qb->select(a);
$result = new ArrayCollection($qb->getQuery()->getResult());
결과적으로 배열 컬렉션에는 적절하게 색인 된 요소가 포함됩니다.
예, 쿼리 작성기를 사용하여 가능합니다. 작은 예를 들어, t.someField로 색인을 작성한다고 가정 해 봅시다. 메소드에서 세 번째 인수를보십시오.
<?php
$query = $em->createQueryBuilder()
->select('t.somefield', 't.someOtherField')
->setFrom('Entity\Table', 't', 't.someField')
->getQuery()
$results = $query->getArrayResult();
//your result will look something like:
$results['somefieldvalue'] = array(array('somefield' => 'value', 'someOtherField' => 'test'));
?>
적어도 Doctrine 2.1에서 작동해야합니다. Doctrine 2.0에서는 아직 지원되지 않습니다. Doctrine 2.0에서는 DQL로 지정할 때만 지원됩니다.
(do you querybuilder statement)
$q = $q->getQuery()->setDQL(str_replace('WHERE', 'INDEX BY yourIndexValue WHERE', $q->getDQL()));
이 나를 위해 작동하는 것 같다 ...
Doctrine 2.1.0-DEV에서는'$ qb-> add ('from', 'Entity \ Table t INDEX BY t.id'); '를 사용합니다. – Maxence
업데이 트 용 -
2.2부터는 이제 from 문에 INDEX BY를 포함 할 수 있습니다. 당신이 절에서를 추가하는 경우 이미 교체 할 그 절에서이있는 경우
$qb->from($class, $alias, $indexBy);
는, 당신은 그것을 대체 할 수
이$qb->add('from', new Expr\From($class, $alias, $indexBy), false);
을 추가 오픈 풀 요청있다 Repository의 createQueryBuilder 함수에도 추가 할 수 있으므로 곧 추가 될 것입니다.
정답이어야합니다. – imclickingmaniac
안녕하세요, 2015 년부터 글을 올리면서 아직 없습니다 :-( – zerkms
거부되었습니다 ... https://github.com/doctrine/doctrine2/pull/592 – cmenning
외래 키의 기본 INDEX BY를 사용할 수도 있습니다. 예 : 직접 매핑 "yourIndexValue_id"당신이 외부 키 자체의 열 이름을 사용한다는 것을
/**
* @ORM\OneToMany(targetEntity="Bar", mappedBy="foo", indexBy="bar_id")
*/
protected $bars;
불행하게도 그것을 문서화하지 않는 것 같습니다.
적절한 구문 및 간단한가 될 것이다 : 이것은 인덱스 엔티티 이름 필드가 결과 것
$enityManager->getRepository('AppBundle:Entity')->createQueryBuilder('entity', 'entity.name')->getQuery()->getResult();
.
- 1. doctrine 2 쿼리 빌더 및 조인 테이블
- 2. Symfony2의 IFNULL Doctrine 쿼리 빌더
- 3. doctrine 2 - 쿼리 빌더 조건부 쿼리 ... if 문?
- 4. Doctrine 2 쿼리 빌더 대 엔티티 지속 성능
- 5. 교리 2 쿼리 빌더 복근 기능
- 6. MySQL 인덱스 사용 ORDER BY LIMIT 쿼리
- 7. Doctrine 2 : 쿼리 작성기로 쿼리 업데이트
- 8. Doctrine 쿼리 캐시 및 업데이트
- 9. SUM 2 SELECT COUNT GROUP BY 쿼리
- 10. FuelPHP ORM 및 쿼리 빌더
- 11. 클러스터형 인덱스 및 대상 쿼리
- 12. Doctrine 2 및 SVN Externals
- 13. Doctrine 2 및 CodeIgniter 시작하기
- 14. Doctrine : DQL의 하위 쿼리
- 15. SQL 쿼리 빌더 디자인
- 16. 레일 SQL 쿼리 빌더 ... 또는 액티브 쿼리 빌더
- 17. Doctrine 2 Dynamic Query
- 18. Kohana 쿼리 빌더
- 19. Doctrine 2 모듈 'ObjectExists.php'
- 20. Doctrine 2 무작위로 행 선택 (오프셋 0 또는 1 인덱스)?
- 21. 교리 쿼리 빌더 오류
- 22. 비주얼 쿼리 빌더
- 23. '어디 있지의'교리 쿼리 빌더 쿼리
- 24. Doctrine 쿼리 도움말
- 25. 복잡한 쿼리 빌더
- 26. Symfony 2 + Doctrine 2 + 상속
- 27. Doctrine 2 극단적 인 최적화
- 28. SQL 쿼리 빌더 및 Java 유효성 검사
- 29. Django 쿼리 : 개수 및 그룹 BY
- 30. 쿼리 빌더 대 엔티티
이것은 아주 오래된 답변이지만, 이것은 WHERE 절이없는 쿼리에 대해서는 작동하지 않는다는 점을 지적하고자합니다. – rpkamp