2016-03-19 2 views
0

Что такое функция Dctrine 2 DQL, эквивалентная функции MySQL st_within?Что такое функция Doctrine 2 DQL, эквивалентная функции MySQL st_within

мне нужна эта функция, так как я получаю эту ошибку ниже при выполнении этого DQL запрос:

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

DQL Я пытаюсь запустить это:

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)); 
    } 

FYI для MySQL запрос работает отлично и возвращает ожидаемый результат.

Спасибо,

+2

доктрина не поддерживает это заявление, ни какой-либо общественный репозиторий, вы можете использовать для этого. Вам нужно самостоятельно реализовать пользовательскую функцию: https://github.com/mapado/MysqlDoctrineFunctions, этот пакет реализовал пользовательские функции mysql, вы можете начать прямо сейчас. Для пространственных функций Существует набор для этой ошибки. Я не нашел инструкцию st_within: https://github.com/creof/doctrine2-spatial –

+0

спасибо @CarlosDelgado Я проверю их оба;) –

ответ

1

Существует пучок для пространственных функций, которые поддерживают MySQL и Postgres функции можно найти здесь:

St_within

+0

спасибо @CarlosDelgado –

Смежные вопросы