Zend Db表摘要fetchRow向其添加新对象

时间:2010-08-08 01:57:57

标签: zend-framework zend-db-table

我有一个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;

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

谢谢和最诚挚的问候。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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);