Php Zend Dd行集获取父行
我想知道是否可以在Zend Db行集中使用抽象而不是联接,是否可能 例如,我可以从父表中获取一些信息,如这里所示Php Zend Dd行集获取父行,php,zend-framework,Php,Zend Framework,我想知道是否可以在Zend Db行集中使用抽象而不是联接,是否可能 例如,我可以从父表中获取一些信息,如这里所示 /** * Get default photo info (path , description) */ public function getDefaultPhotoInfo($userdId){ $select = $this->select($this) ->where('id=?', $userdId); $rowse
/**
* Get default photo info (path , description)
*/
public function getDefaultPhotoInfo($userdId){
$select = $this->select($this)
->where('id=?', $userdId);
$rowset = $this->fetchAll($select);
$current = $rowset->current();
$res = $current->findParentRow('UserPhotos', 'Avatar');
if(isset($res)){
return $res->toArray();
}
}
如何使用行集抽象来实现这种逻辑
table( id, pic_path,) table_translation(id, table_id, lang_id, pic_title);
上面是两个表的表示,其思想是从两个表中获取信息,指定lang_id,使用连接很容易,但我可以使用Db行集的抽象来实现吗?只是为了澄清一下:在
Zend_Db_表
实例上执行fetchAll
时,您会得到一个Zend_Db_表
行集,它实现了迭代器
接口。因此,在行集实例上调用current()
,将返回一个Zend\u Db\u Table\u行
实例
从ZF1.10开始,您可以定义实例或具体表实例中的表之间的关系,如中所述。由于指南相当详细,我将不在此重复
定义关系后,可以使用(指南中的示例1)从行中获取它们
或者通过神奇的发现方法
findParentRow()
方法与此有所不同,因为它从父行返回依赖行集的整行
Ex5:此示例显示如何从表bug(例如状态为“NEW”的bug之一)中获取Row对象,并在Accounts表中为报告bug的用户查找该行
在使用表关系时,请记住,这些关系将导致每个获取的依赖表增加一个查询,而连接在一个表中完成所有查询
另请参见以下相关问题:
Zend_Db_表
实例上执行fetchAll
时,您会得到一个Zend_Db_表行集
,它实现了迭代器
接口。因此,在行集实例上调用current()
,将返回一个Zend\u Db\u Table\u行
实例
从ZF1.10开始,您可以定义实例或具体表实例中的表之间的关系,如中所述。由于指南相当详细,我将不在此重复
定义关系后,可以使用(指南中的示例1)从行中获取它们
或者通过神奇的发现方法
findParentRow()
方法与此有所不同,因为它从父行返回依赖行集的整行
Ex5:此示例显示如何从表bug(例如状态为“NEW”的bug之一)中获取Row对象,并在Accounts表中为报告bug的用户查找该行
在使用表关系时,请记住,这些关系将导致每个获取的依赖表增加一个查询,而连接在一个表中完成所有查询
另请参见以下相关问题:
$accountsTable = new Accounts();
$accountsRowset = $accountsTable->find(1234);
$user1234 = $accountsRowset->current();
$bugsReportedByUser = $user1234->findDependentRowset('Bugs');
$bugsTable = new Bugs();
$bugsRowset = $bugsTable->fetchAll(array('bug_status = ?' => 'NEW'));
$bug1 = $bugsRowset->current();
$reporter = $bug1->findParentRow('Accounts');