2017-07-26 40 views
0
$query = $em->query(" 
    SELECT c.id AS id 
    FROM collectif c, zone z 
    WHERE 
     c.zone_id = z.id 
    AND z.label = '$zone' 
    ANDc.collectif = '$collectif' 
"); 

$c = $query->fetchAll(); 
$idc = $c['id']; 

我有这样的查询,返回一行,Symfony的显示我的错误是什么变量ID未定义的Symfony查询在控制器

注:我知道这是不尊重的Symfony [MVC]的概念但它是一个特别的原因,所以如果有人能告诉我怎样才能解决这个问题

谢谢元素,以便关键id不存在的

+2

'$ idc = $ c [0] ['id'];'? –

+1

非常好奇你的“特殊原因”是什么。这可能是你真正的问题,你应该问一个关于如何解决它的问题。 – Oldskool

+0

这不是为了显示一个坏例子,我在这里指定它是一个特定的原因,我在控制器 – DjibJoker

回答

2

$query->fetchAll()应该返回数值数组。您应该尝试$c[0]['id']以获得价值。

+0

谢谢@Grzegorz Gajda,它的工作原理 – DjibJoker

0

如果你宁愿使用导致assocative方式,你可以使用fetchAssoc()代替:

$c = $query->fetchAssoc(); 
$idc = $c['id']; 

下面是引用文档: http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html#fetchassoc

我只是给一个备用这样做的方法。

+0

这样做有帮助吗? –

+0

不,它没有工作,解决方案是:$ query-> fetchAll(); $ c [0] ['id']; – DjibJoker

+0

但是,根据你原来的文章,你想使用'$ c ['id']',所以在这种情况下,如果你使用'fetchAssoc(0)',那么你可以使用'$ c ['id']'like我在回答中已经指出。我完全以这种方式使用'fetchAssoc()',所以我知道它的工作原理。我只是试图为您提供更好的解决方案。 –