2016-03-19 19 views
0

Doctrine 2 DQL işlevi MySQL işlevine eşdeğerdir st_within?Doctrine 2 DQL işlevi MySQL işlevine eşdeğer st_within

[Syntax Error] line 0, col 165: Error: Expected known function, got 'ST_Within' 

Ben çalıştırmak çalışıyorum DQL geçerli:: Bilginize

public function getAdsInBounds($numberPerPage,$page){ 
    $qb = $this->em->createQueryBuilder() 
      ->select("m") 
      ->from($this->getEntityClassName(), "m") 
      ->where("ST_Within(point(m.lng, m.lat), envelope(linestring(point(10.090792984008772,36.83717099338201), point(10.310519546508772,36.749467295867646)))") 
      ->orderBy("m.date", "DESC"); 

    return new Paginator($qb->getQuery()->setFirstResult(($page-1) * $numberPerPage) 
      ->setMaxResults($numberPerPage)); 
    } 

MySQL

Ben bu DQL sorgusunu çalıştırırken aşağıda bu hatayla beri bu işlevi gerekiyor sorgu mükemmel çalışır ve beklenen sonucu döndürür.

sayesinde

MySQL ve postgres destekleyen mekansal işlevler için bir paket var
+2

Doktrini bu ifadeyi ne de herhangi bir kamu depo desteklemediği bunun için kullanabilirsiniz. Kendinize özel bir işlev uygulamanız gerekir: https://github.com/mapado/MysqlDoctrineBu paketin mysql'in özel işlevlerini uyguladığı, tam da buradan başlayabileceğiniz anlamına gelir. Uzamsal işlevler için bu hata için bir paket var. St_within ifadesini bulamadım: https://github.com/creof/doctrine2-spatial –

+0

teşekkürler @CarlosDelgado İkisini de kontrol edeceğim;) –

cevap

1

, fonksiyonlar burada bulunabilir:

St_within

+0

teşekkürler @CarlosDelgado –