是否可以使用索引與教條2查詢生成器,如果是的話,什麼是正確的語法?原則2查詢生成器和索引
回答
這是一個使用的QueryBuilder時,使用索引的手工注射by子句一個解決方案 -
(do you querybuilder statement)
$q = $q->getQuery()->setDQL(str_replace('WHERE', 'INDEX BY yourIndexValue WHERE', $q->getDQL()));
這似乎爲我工作...
是的,這是可能的,使用查詢生成器。一個小例子,讓我們假設我們想通過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指定時才支持。
隨着Doctrine 2.1.0-DEV,我使用`$ qb-> add('from','Entity \ Table t INDEX BY t.id');` – Maxence 2012-02-18 13:30:23
對於更新。你可以做這樣的事情。
$qb = $entityManager->createQueryBuilder();
$qb->from($repository->getClassName(), 'a', 'a.id');
$qb->select(a);
$result = new ArrayCollection($qb->getQuery()->getResult());
因此,數組集合將包含正確索引的元素。
從2.2開始,您現在可以在您的from語句中包含INDEX BY。如果要添加從第一個,
$qb->from($class, $alias, $indexBy);
如果你已經有了一個FROM子句中要替換,那麼你可以將其替換爲:
$qb->add('from', new Expr\From($class, $alias, $indexBy), false);
有一個開放的拉請求添加它到存儲庫的createQueryBuilder函數,希望這會很快加入。
這應該是正確的答案。 – imclickingmaniac 2014-04-25 09:32:50
您還可以使用外鍵的默認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. 原則 - 有MAX與查詢生成器
- 2. 使用查詢生成器刪除原則2
- 3. 原則查詢生成器原生mysql變量
- 4. 使用原則查詢生成器快速查詢
- 5. Laravel 5:原生SQL查詢生成器
- 6. 與laravel和查詢生成器檢索列的差異爲2
- 7. 學說2,原生查詢
- 8. 如何在原則2中對原生查詢進行分頁?
- 9. Doctrine 2查詢生成器和leftJoin子查詢
- 10. 使用查詢生成器或sql原則
- 11. 原則查詢生成器錯誤結果
- 12. 原則查詢生成器無法找到ACOS功能
- 13. 原則查詢生成器:語義錯誤
- 14. DQL訪問屬性在查詢生成器(原則)
- 15. 基於數組的原則查詢生成器
- 16. 原則查詢生成器連接添加表兩次
- 17. 請參閱原則查詢生成器DQL與params就位
- 18. 使用連接時的原則查詢生成器錯誤
- 19. 查詢生成器和動態查詢
- 20. Symfony2原則查詢生成器作爲FROM子句中的子查詢
- 21. 如何使用symfony2原則查詢生成器來選擇不同的查詢?
- 22. 正則表達式與Doctrine 2查詢生成器?
- 23. 使用Doctrine 2查詢生成器
- 24. Symfony 2 Formtype查詢生成器
- 25. 生成原則2實體時出錯
- 26. 正則表達式查詢生成器
- 27. Yii的查詢生成器結果(平原SQL和加入和子查詢)
- 28. 索引和加速「派生」查詢
- 29. cakephp3.0查詢生成器檢索數據
- 30. Sensenet:查詢生成器,搜索領域
我意識到這是一個非常古老的答案,但我只想指出,這不適用於沒有任何WHERE子句的查詢。 – rpkamp 2016-02-03 11:30:05