本文整理汇总了PHP中DBObjectSet::GetRootClass方法的典型用法代码示例。如果您正苦于以下问题:PHP DBObjectSet::GetRootClass方法的具体用法?PHP DBObjectSet::GetRootClass怎么用?PHP DBObjectSet::GetRootClass使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DBObjectSet
的用法示例。
在下文中一共展示了DBObjectSet::GetRootClass方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CreateDelta
/**
* Build a new set (in memory) made of objects of the given set which are NOT present in the current set
*
* Limitations:
* The objects inside the set must be written in the database since the comparison is based on their identifiers
* Sets with several objects per row are NOT supported
*
* @param DBObjectSet $oObjectSet
* @throws CoreException
*
* @return DBObjectSet The "delta" set.
*/
public function CreateDelta(DBObjectSet $oObjectSet)
{
if ($this->GetRootClass() != $oObjectSet->GetRootClass()) {
throw new CoreException("Could not 'delta' two objects sets if they don't have the same root class");
}
if (!$this->m_bLoaded) {
$this->Load();
}
$aId2Row = array();
$iCurrPos = $this->m_iCurrRow;
// Save the cursor
$idx = 0;
while ($oObj = $this->Fetch()) {
$aId2Row[$oObj->GetKey()] = $idx;
$idx++;
}
$oNewSet = DBObjectSet::FromScratch($this->GetClass());
$oObjectSet->Seek(0);
while ($oObject = $oObjectSet->Fetch()) {
if (!array_key_exists($oObject->GetKey(), $aId2Row)) {
$oNewSet->AddObject($oObject);
}
}
$this->Seek($iCurrPos);
// Restore the cursor
return $oNewSet;
}