Symfony 1.4中的条令查询,不确定我在这里做错了什么


Doctrine query in Symfony 1.4, not sure what I am doing wrong here

我有一个查询如下:

$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();
}

但这说明:在actions.class.php第69行调用未定义的方法Doctrine_Collection::getColumn3()

我无法理解这一点,正在慌乱地思考如何完成它。有人能帮我发现麻烦吗?

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

否则,您将不得不在newerFields子级上循环以检索数据:

// array of Doctrine_Collection
foreach($newerFields as $newerFieldCollection)
{
  foreach($newerFieldCollection as $newerField)
  {
    echo $newerField->getColumn3();
  }
}
相关文章: