Symfony2 / Doctrine2问题与查询

时间:2015-03-31 20:12:43

标签: symfony doctrine-orm

我从查询中得到一个奇怪的回应,这是一个搞乱的事情。基本上,我这样打电话

$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'];

我有没有理由为这个特定查询收到一个空数组?似乎任何以@。

开头的命令都会出现

由于

0 个答案:

没有答案
相关问题