我从查询中得到一个奇怪的回应,这是一个搞乱的事情。基本上,我这样打电话
$allFlights = $em->getRepository("NickAlertBundle:Alert")->getSpecificAlert($id);
这会调用以下查询
public function getSpecificAlert($id)
{
$active = "Active";
return $this->getEntityManager()
->createQuery(
'SELECT a.id, a.searchCommand,
GROUP_CONCAT(DISTINCT c.classLetter) AS classes,
GROUP_CONCAT(DISTINCT p.pseudo) AS pseudos,
GROUP_CONCAT(DISTINCT f.flightNumber) AS flight_number
FROM NickAlertBundle:Alert a
JOIN NickAlertBundle:BookingClass c
WITH a.id = c.availabilityAlert
JOIN NickAlertBundle:Pseudos p
WITH a.id = p.availabilityAlert
JOIN NickAlertBundle:FlightNumbers f
WITH a.id = f.availabilityAlert
WHERE a.alertStatus = :active
AND a.id = :id
GROUP BY a.id'
)
->setParameter('active', $active)
->setParameter('id', $id)
->getResult();
}
现在我的数据库中有两个警报。如果我var_dump对该查询的响应,则第一个警报是
array(1) {
[0]=> array(5) {
["id"]=> int(3)
["searchCommand"]=> string(12) "A20JUNLONMIA"
["classes"]=> string(1) "I"
["pseudos"]=> string(7) "12D,4FD"
["flight_number"]=> string(6) "AY5507"
}
}
现在这个处理正常。如果我输出第二个警报我得到以下
array(1) {
[0]=> array(5) {
["id"]=> int(8)
["searchCommand"]=> string(20) "@BA@A20APRLONNYC0100"
["classes"]=> string(1) "A"
["pseudos"]=> string(7) "12D,4FD"
["flight_number"]=> string(6) "BA1516"
}
}
array(0) { }
所以它最后用一个空数组来做。数据库中只有一个带有此ID的警报,因此不确定为什么会发生这种情况。无论如何,这个空数组导致以下失败
$command = $allFlights[0]['searchCommand'];
我有没有理由为这个特定查询收到一个空数组?似乎任何以@。
开头的命令都会出现由于