我有一个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;
它有效,但如何合并数据中的照片?
谢谢和最诚挚的问候。
答案 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);