2017-07-26 45 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()',所以我知道它的工作原理。我只是試圖爲您提供更好的解決方案。 –