[英]Doctrine Native SQL column conflicts with another column in the mapper
我遇到了一個問題,使本機查詢映射到聯接的表中有一些列,其中列名是來自不同表的相同名稱。 出於理智,這幾乎就是表格的外觀。
Addresses
id
latitude:float
longitude:float
street:string
Properties
id:int
latitude:float
longitude:float
address_id:int
name:string
<?php
$rsm = new ResultSetMappingBuilder($this->_em);
$rsm->addRootEntityFromClassMetadata('MatrixBundle:CombinedListing', 'cl');
$rsm->addJoinedEntityFromClassMetadata('MatrixBundle:Address', 'a', 'cl', 'addresses', array('id' => 'address_id'));
$qb = $this->_em->createNativeQuery("
SELECT cl, 3959
* acos(cos(radians($lat))
* cos(radians(cl.latitude))
* cos(radians(cl.longitude) - radians($lng))
+ sin(radians($lat)) * sin(radians(cl.latitude)))
AS distance
FROM combined_listings as cl
JOIN addresses as a on a.id = cl.address_id
WHERE a.state = :state
AND a.city = :city
ORDER BY distance $order
LIMIT $offSet, $max
", $rsm);
$qb->setParameters(["state" => $state, "city" => $city]);
return $qb->getResult();
我得到的錯誤是
列“緯度”與映射器中的另一列沖突。
我一直在尋找答案,解決方案或解決方法。 我很少在原則中使用本機查詢,但DQL不支持acos()。 還有其他人遇到過這個問題嗎?
我的好友說,他看到了我很久以前問的一個問題。 我檢查了一下,發現沒有人回答。 這個問題的答案是您必須使用擴展名。 特別是這些。 https://github.com/beberlei/DoctrineExtensions/tree/master/src/Query/Mysql
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.