2012-04-06 103 views
0

我有一個查詢,內容是這樣的:學說查詢,不知道我在做什麼錯在這裏

$fields = Doctrine_Core::getTable('model_1')->findByColumnId($id); 

拿了上的var_dump領域,因爲它應該是檢索數據;

下了起來,我做這個

foreach($fields as $field) 
{ 
$newerFields[$field->getColumnId()] = 
Doctrine_Core::getTable('model2')->findByColumn2Id($field->getColumnId()); 
} 

我把每$ newerFields [$場]一的var_dump和它產生的結果,因爲它應該。在的actions.class.php 調用未定義的方法Doctrine_Collection :: getColumn3()上線69

我不能:接下來我試着這樣做:

foreach($newerFields as $newerField) 
{ 
echo $newerField->getColumn3(); 
} 

但這吐出來把我的頭圍繞在這,並且對如何完成這個想法感到慌亂。任何人都可以爲我找到麻煩嗎?

+0

如果是關係表,你應該使用leftJoin() – tttony 2012-04-06 02:55:32

+0

這是一個關係表,但我不明白爲什麼我要在這種情況下使用leftJoin – user1020069 2012-04-06 05:48:00

回答

1

您的findByColumn2Id返回一個Doctrine_Collection,因爲findBy總是返回一個集合(如果您沒有在表文件中定義它),即使只有一個結果。如果您想檢索一個結果,請改爲使用findOneBy

否則,你將不得不對循環孩子的newerFields檢索數據:

// array of Doctrine_Collection 
foreach($newerFields as $newerFieldCollection) 
{ 
    foreach($newerFieldCollection as $newerField) 
    { 
    echo $newerField->getColumn3(); 
    } 
} 
+0

謝謝,我自己想到了這一點,並循環它是解決方案,因爲我正在查看一組記錄。 – user1020069 2012-04-06 17:30:09

相關問題