2015-03-09 5 views
5

Ads इकाई भौगोलिक सूचना द्वारा वर्णित है बिना पहचान चर के माध्यम से इकाई नहीं चुन सकते। Ads इकाई केवल County से जुड़ा हुआ है। नतीजतन, देशों द्वारा Ads को पुनर्प्राप्त करने के लिए हमें दो बार इकाइयों में शामिल होने की आवश्यकता होगी।कम से कम एक जड़ इकाई उर्फ ​​चुनने

मेरा लक्ष्य किसी दिए गए देश के लिए विज्ञापनों की संख्या की गणना कर रहा है।

public function getMotorsAdsCountByCountry($slug){ 
    $qb = $this->_em->createQueryBuilder() 
      ->select("m.id, COUNT(m.id) AS cnt") 
      ->from("MinnAdsBundle:MotorsAds", "m") 
      ->join("m.county","county")->addSelect("county") 
      ->join("county.region","region")->addSelect("region") 
      ->join("region.country","country")->addSelect("country") 
      ->where("country.slug=:slug") 
      ->setParameter(":slug", $slug); 
    return $qb->getQuery()->getSingleScalarResult(); 
} 

त्रुटि मुझे मिल गया है:

[Semantical Error] line 0, col -1 near 'SELECT m.id,': Error: Cannot select entity through identification variables without choosing at least one root entity alias.

मैं भी this link में लेकिन सफलता के बिना एक ही त्रुटि के संबंध में एक पोस्ट देखा है कि के लिए, मैं इस DQL क्वेरी लेकिन सफलता नहीं मिली की कोशिश की।

उत्तर

4

मैं समाधान का प्रयास करें:

$qb = $this->_em->createQueryBuilder() 
      ->select("COUNT(m.id) AS cnt") 
      ->from("MinnAdsBundle:MotorsAds", "m") 
      ->join("m.county","county") 
      ->join("county.region","region") 
      ->join("region.country","country") 
      ->where("country.slug=:slug") 
      ->setParameter(":slug", $slug); 

मैं सिर्फ addSelect को दूर कर दिया है() एम के अलावा चयन() के odification।

2

सरणी

->select("m.id, COUNT(m.id) AS cnt") 

->select("m, COUNT(m.id) AS cnt") 

करने के लिए या जलयोजन बदल बदल रहा

+0

मैंने दोनों - - चयन ("एम, COUNT (एमआईआईडी) एएस सीएनटी") 'और '-> चयन करें (सरणी (" एम "," COUNT (एम.आईडी) एएस सीएनटी ")'' लेकिन सफलता के बिना! मुझे जो त्रुटि मिलती है वह है: ** 500 आंतरिक सर्वर त्रुटि - NonUniqueResultException ** –

संबंधित मुद्दे