我必須更改現有Symfony2項目中的某些內容,但不幸的是,我之前從未使用過Symfony2。Symfony2:將連接條件添加到ManyToMany關係
該數據庫包含以下表:
Location
========
id
....
Deal
========
id
deleted
...
deal_location
=================
deal
location
有新政和位置之間的許多一對多的關係。這被映射在這樣的Location.orm.yml文件:
manyToMany:
deals:
cascade: ['all']
targetEntity: Deal
mappedBy: locations
我想要做的就是要排除的在那裏刪除所有交易(刪除= 1)從數據庫中讀取的位置時。
我發現,這可以在LocationRepository類中完成。在這一類中,我發現了以下功能:
public function getFindAllByLatLonQueryBuilder($lat, $lon)
{
$qb = $this->createQueryBuilder('l');
$qb
->where('l.deleted IS NULL OR l.deleted = false')
->orderBy('(((ACOS(SIN((:lat*PI()/180)) *
SIN((l.latitude*PI()/180))+COS((:lat*PI()/180)) *
COS((l.latitude*PI()/180)) * COS(((:lon-l.longitude)*
PI()/180))))*180/PI())*60*1.1515*1.609344)', 'ASC')
->setParameter('lat', $lat)
->setParameter('lon', $lon)
;
return $qb->getQuery()->getResult();
}
我發現了一個similar question並添加以下行:
->leftJoin('l.deals', 'deals', 'WITH', 'deals.deleted = 0')
可惜,這是行不通的。我該如何做這項工作?
謝謝您的回答,缺少S爲只是一個錯字。是的,我確定檢查是正確的。出於某種原因,原始程序員在Location中使用布爾值,但在Deal中使用Int。 – Apfelsaft
在將代碼複製到此問題中時出現錯字? – LBA
錯字在問題中。 – Apfelsaft