2015-02-11 15 views
5

Kullanıcıları ve rolleri bir MySql veritabanından almak için bir DQL sorgusu ile ilgili bir sorun yaşıyorum. Zend Framework 2 ve Doctrine 2 kullanıyorum.DQL sorgusu hata üretir Beklenen Literal, 'BY' aldım

Sorgu aşağıdaki gibidir.

oluşturulan DQL 'TARAFINDAN' var, Değişmez Beklenen

SELECT u, r FROM Application\Entity\Users u LEFT JOIN Application\Entity\UserRoles r ORDER BY u.emailAddress ASC 

Can kişidir: Hata:

public function getUsers() 
{ 
    $builder = $this->getEntityManager()->createQueryBuilder(); 
    $builder->select('u, r') 
      ->from('Application\Entity\Users', 'u') 
      ->leftJoin('Application\Entity\UserRoles', 'r') 
      ->orderBy("u.emailAddress", "ASC"); 

    InfoLogger::vardump($builder->getDQL()); 

    return $builder->getQuery()->getResult(Query::HYDRATE_OBJECT); 
} 

yukarıdaki sorgu hatası, [Dizimi Hatası] hat 0, col 91 üretir lütfen bu sorguda neyin yanlış olduğunu tespit edin, çok teşekkürler.

cevap

7

Bunu çözdüm.

sorun

hattı Bu userRole benim varlık \ Users sınıfında tanımlanır
->leftJoin('u.userRole', 'r') 

olmalıydı

->leftJoin('Application\Entity\UserRoles', 'r') 

ile oldu.

İlgili konular