2016-03-19 30 views
0

Doctrine 2のDQL関数は、MySQL関数st_withinと同等ですか?Doctrine 2とは何ですか?MySQL関数st_withinに相当するDQL関数

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

私が実行しようとしていますDQLは次のとおりです:FYI

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の

は、私はこのDQLクエリを実行すると次のエラーを取得していますので、この機能が必要ですクエリは完全に機能し、期待される結果を返します。

おかげで、MySQLとPostgresのをサポートする空間機能のバンドルがあり

+2

Doctrineはその文も任意の公開リポジトリをサポートしていません。あなたはそれを使うことができます。あなた自身でカスタム関数を実装する必要があります:https://github.com/mapado/MysqlDoctrineFunctionsこのバンドルはmysqlのカスタム関数を実装しています。すぐそこから始めることができます。空間関数については、私はst_withinステートメントを発見したそのバグのバンドルがあります:https://github.com/creof/doctrine2-spatial –

+0

ありがとう@CarlosDelgado私は両方をチェックします;) –

答えて

1

、機能がここで見つけることができます:

St_within

+0

@CarlosDelgadoに感謝 –

関連する問題