中的實體存儲庫:學說2.2雙類型功率
$qb = $this->createQueryBuilder('c');
//....
$qb->addSelect('POWER('.$qb->expr()->abs(
$qb->expr()->diff('c.latitude', $filter['latitude'])
).',2) AS ddst';
//....
return $qb->getQuery(); //to Pagerfanta with DoctrineORMAdapter
錯誤:
QueryException: [Syntax Error] line 0, col 11: Error: Expected known function, got 'POWER'
QueryException: SELECT c, (POWER(ABS(c.delivery_latitude - 47.227163),2) AS ddst
FROM MyEntity c ORDER BY ddst ASC, c.created_at DESC (this is dql error)
有什麼不對? Dql不支持POWER。我沒有在qb-expressions中找到它。
你的問題是什麼?你實際上知道它爲什麼不起作用,'POWER'函數不是原生的'DQL'函數。你必須自己寫,並將其添加到Doctrine2。 (http://docs.doctrine-project.org/en/2.1/cookbook/dql-user-defined-functions.html) –
好的。我會嘗試給DQL添加POWER。其實我認爲DQL支持某種形式的SQL數學函數。 Cuz原生查詢對我不好。我不知道,如何將NQ傳遞給Pagerfanta)) 但是,謝謝。 – ZloyPotroh