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[$field] 进行了一个 var_dump ,它确实产生了应有的结果。接下来我尝试这样做:

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

但这会吐出来: Call to undefined method Doctrine_Collection::getColumn3() in actions.class.php on line 69

我无法解决这个问题,并且对如何完成它感到心慌。谁能帮我找出麻烦?

4

1 回答 1

1

findByColumn2Id返回一个 Doctrine_Collection 因为findBy总是返回一个集合(如果你没有在表文件中定义它),即使只有一个结果。如果要检索一个结果,请findOneBy改用。

否则,您将不得不循环newerFields子项来检索数据:

// array of Doctrine_Collection
foreach($newerFields as $newerFieldCollection)
{
  foreach($newerFieldCollection as $newerField)
  {
    echo $newerField->getColumn3();
  }
}
于 2012-04-06T06:14:58.967 回答