1

我有一个 fetchRow,就是这样完成的:

$db = new Database();
$data = $db->fetchRow($db->select()->where('id = ?',$id));

完成后,我想从文件表中检索所有文件,如下所示:

$files = new Database();
$photos = $files->fetchAll($files->select()->where('id = ?',$data->id));

但它返回两个不同的对象,我怎样才能将它添加到一个对象?

如果我做:

$this->view->photos = $photos;
$this->view->data = $data;

它有效,但是如何合并数据中的照片?

谢谢和最好的问候。

4

2 回答 2

1

如果您的表是不同类型文件的数据集,那么您需要控制它们的水合方式 - 即。从查询中返回什么对象。为此,您需要为表创建自己的 Rowset 类并将其设置为 Database 类的属性(假设它是 Zend_Db_Table)。

在这个行集类中,您将检查行的属性作为其水合,然后选择使用哪个类来使用“数据”或“照片”。为了保持一致,您还需要修改表类以处理单个记录的水合(即使用查找方法)。

于 2010-08-08T02:07:47.267 回答
0

尝试

$db = new Database();
$data = $db->fetchRow($db->select()->where('id = ?',$id));

$files = new Database();
$photos = $files->fetchAll($files->select()->where('id = ?',$data->id));



array_push( $photos, $data);
于 2010-08-08T02:09:46.783 回答