İndeks doktrin 2 sorgu oluşturucu ile kullanmak mümkün mü ve eğer öyleyse uygun sözdizimi nedir?Doktrin 2 sorgu oluşturucu ve dizin tarafından
cevap
İşte maddesi ile dizinin manuel enjeksiyon kullanarak, QueryBuilder kullanarak bir çözüm. Böyle bir şey yapabilirsin.
$qb = $entityManager->createQueryBuilder();
$qb->from($repository->getClassName(), 'a', 'a.id');
$qb->select(a);
$result = new ArrayCollection($qb->getQuery()->getResult());
Sonuç olarak, dizi koleksiyonu düzgün şekilde dizinlenmiş öğeler içerecektir.
Bu mümkün, sorgu oluşturucuyu kullanarak. Küçük bir örnek, t.someField ile endekslemek istediğimizi varsayalım. Üçüncü bağımsız değişkeni yöntemden izleyin.
<?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'));
?>
Bu, Doktrin 2.1'de en azından çalışmalıdır. Doctrine 2.0'da henüz desteklenmiyor. Doctrine 2.0'da sadece DQL ile belirtildiğinde desteklenir.
(do you querybuilder statement)
$q = $q->getQuery()->setDQL(str_replace('WHERE', 'INDEX BY yourIndexValue WHERE', $q->getDQL()));
Bu benim için iş gibi görünüyor ...
Doctrine 2.1.0-DEV ile, $ qb-> add ('from', 'Entity \ Table t INDEX BY t.id'); ' – Maxence
bir güncelleştirme için -
2.2 ile başlayarak, şimdi INDEX BY ifadesini içerden ekleyebilirsiniz. Eğer fıkra dan a, ekliyorsanız zaten Değiştirmek istediğiniz fıkra bir varsa
$qb->from($class, $alias, $indexBy);
, o zaman ile değiştirebilirsiniz:
$qb->add('from', new Expr\From($class, $alias, $indexBy), false);
eklemek için açık bir çekme isteği var Deponun createQueryBuilder işlevi de, bu yüzden bu yakında eklenecektir umarım.
Doğru cevap bu olmalı. – imclickingmaniac
Hey, 2015'ten yazıyorum ve henüz yok :-( – zerkms
Reddedildi ... https://github.com/doctrine/doctrine2/pull/592 – cmenning
Ayrıca, yabancı bir anahtarın varsayılan bir INDEX BY değerini de kullanabilirsiniz. doğrudan eşlemenizde "yourIndexValue_id": Eğer yabancı anahtarın kendisi sütunun adını kullanmak zorunda olduğu
/**
* @ORM\OneToMany(targetEntity="Bar", mappedBy="foo", indexBy="bar_id")
*/
protected $bars;
Ne yazık ki belgelendirilmesi görünmüyor.
uygun sözdizimi ve en basit olacaktır: Bu indeks Varlık adı alanına göre sonuç olur
$enityManager->getRepository('AppBundle:Entity')->createQueryBuilder('entity', 'entity.name')->getQuery()->getResult();
.
- 1. Doktrin sorgu oluşturucu: semantical error
- 2. doktrin 2
- 3. Doctrine 2 sorgu oluşturucu ile Regex?
- 4. Symfony 2 + Doktrin 2 + kalıtım
- 5. Bir Doktrin Varlığı dizin alın
- 6. Symfony 2: Oturumlar tablosu, doktrin geçişleri tarafından nasıl düşürülür?
- 7. Laravel 4 sorgu oluşturucu
- 8. PHP MySQL sorgu oluşturucu
- 9. C++ Oluşturucu Değer tarafından
- 10. doctrine 2 - sorgu oluşturucu koşullu sorgular ... If deyimleri?
- 11. Doktrin Sorgu Oluşturucusu Case ile Sayımı Seç
- 12. Laravel'de 2 sütun eşit değer içeren satırları seçin Sorgu oluşturucu
- 13. Doktrin 2 - Bütün kayıtları al
- 14. Symfony2 doktrin sorgu oluşturucusu kullanarak ayrı sorgu nasıl seçilir?
- 15. MySQL sorgu oluşturucu PHP sınıfı
- 16. GroupBy sorgu aşağıda sorgu kullanıyorum laravel sorgu oluşturucu
- 17. laravel 4 sorgu oluşturucu madde
- 18. SQL sorgu ile avg ve grup tarafından
- 19. 'nereye değil de' doktrini sorgu oluşturucu ile sorguya
- 20. Lucene.Net Sorgu Ayrıştırıcı/Dizin hatası?
- 21. laravel Sorgu Oluşturucu - Özel Veri Tipi
- 22. Laravel Model Oluşturucu Üzerinde Tanımsız Dizin
- 23. Dizin oluşturucu arabiriminin bir parçası olarak C#
- 24. Symfony'nin, Doktrin ve
- 25. Sorgu oluşturucu created_at gibi tüm alanlar takıldıktan olan veri eklemek için Sorgu oluşturucu kullanıyorum damgalarını
- 26. Doktrin 2 - 2 bir kayan nokta üzerinde ondalık basamak?
- 27. Linq sorgu sonucuna dizin ekleniyor
- 28. Bir doktrin 2 varlık dosyasında (ek açıklamaları kullanarak) bir tablo için birden fazla dizin nasıl ayarlayabilirim?
- 29. DoTakTrin 2 tetiklenmeyen preUpdate ve postUpdate olayları 2
- 30. Doktrin - veya nerede?
kullanın. Bunun çok eski bir yanıt olduğunu anlıyorum, ama ben Bunun WHERE yan tümcesi olmayan sorgularda işe yaramayacağını belirtmek isterim. – rpkamp