本文整理汇总了PHP中ActiveRecordModel::eavQueue方法的典型用法代码示例。如果您正苦于以下问题:PHP ActiveRecordModel::eavQueue方法的具体用法?PHP ActiveRecordModel::eavQueue怎么用?PHP ActiveRecordModel::eavQueue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ActiveRecordModel
的用法示例。
在下文中一共展示了ActiveRecordModel::eavQueue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: loadEav
public static function loadEav()
{
if (!self::$eavQueue) {
return false;
}
ClassLoader::import('application.model.eav.EavObject');
ClassLoader::import('application.model.eav.EavSpecificationManager');
// create array of EavObject gateway objects for all queued records
$eavObjects = array();
foreach (self::$eavQueue as $class => &$records) {
$field = EavObject::getClassField($class);
foreach ($records as $id => $record) {
$eavObjects[] = array('ID' => $record['eavObjectID'], $field => $id);
}
}
// fetch EAV values
if ($eavObjects) {
EavSpecificationManager::loadSpecificationForRecordSetArray($eavObjects, true);
// assign attribute values to the respective records
foreach ($eavObjects as $entry) {
unset($entry['ID']);
foreach ($entry as $field => $refId) {
if ($refId) {
$class = ucfirst(substr($field, 0, -2));
if (isset($entry['attributes'])) {
self::$eavQueue[$class][$refId]['attributes'] = $entry['attributes'];
foreach ($entry['attributes'] as $attr) {
self::$eavQueue[$class][$refId]['byHandle'][$attr['EavField']['handle']] = $attr;
}
}
break;
}
}
}
}
self::$eavQueue = array();
}