本文整理汇总了PHP中ArrayUtils::getIdsArray方法的典型用法代码示例。如果您正苦于以下问题:PHP ArrayUtils::getIdsArray方法的具体用法?PHP ArrayUtils::getIdsArray怎么用?PHP ArrayUtils::getIdsArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ArrayUtils
的用法示例。
在下文中一共展示了ArrayUtils::getIdsArray方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sync
/**
* @return OneToManyLinkedFull
**/
public function sync($insert, $update = array(), $delete)
{
$uc = $this->container;
$dao = $uc->getDao();
if ($delete) {
DBPool::getByDao($dao)->queryNull(OSQL::delete()->from($dao->getTable())->where(Expression::eq(new DBField($uc->getParentIdField()), $uc->getParentObject()->getId()))->andWhere(Expression::in($uc->getChildIdField(), ArrayUtils::getIdsArray($delete))));
$dao->uncacheByIds(ArrayUtils::getIdsArray($delete));
}
if ($insert) {
for ($i = 0, $size = count($insert); $i < $size; ++$i) {
$dao->add($insert[$i]);
}
}
if ($update) {
for ($i = 0, $size = count($update); $i < $size; ++$i) {
$dao->save($update[$i]);
}
}
return $this;
}
示例2: exportValue
public function exportValue()
{
if (!$this->value) {
return null;
}
return ArrayUtils::getIdsArray($this->value);
}
示例3: fetchCollections
public function fetchCollections(array $collections, array $list)
{
Assert::isNotEmptyArray($list);
$ids = ArrayUtils::getIdsArray($list);
$mainId = DBField::create($this->getIdName(), $this->getTable());
foreach ($collections as $path => $info) {
$lazy = $info['lazy'];
$query = OSQL::select()->get($mainId)->from($this->getTable());
$proto = reset($list)->proto();
$this->processPath($proto, $path, $query, $this->getTable());
if ($criteria = $info['criteria']) {
$query = $criteria->setDao($this)->fillSelectQuery($query);
}
$query->andWhere(Expression::in($mainId, $ids));
$propertyPath = $info['propertyPath'];
$property = $propertyPath->getFinalProperty();
$proto = $propertyPath->getFinalProto();
$dao = $propertyPath->getFinalDao();
$selfName = $this->getObjectName();
$self = new $selfName();
$getter = 'get' . ucfirst($property->getName());
Assert::isTrue($property->getRelationId() == MetaRelation::ONE_TO_MANY || $property->getRelationId() == MetaRelation::MANY_TO_MANY);
$table = $dao->getJoinName($property->getColumnName());
$id = $this->getIdName();
$collection = array();
if ($lazy) {
if ($property->getRelationId() == MetaRelation::MANY_TO_MANY) {
$childId = $self->{$getter}()->getChildIdField();
} else {
$childId = $dao->getIdName();
}
$alias = 'cid';
// childId, collectionId, whatever
$field = DBField::create($childId, $self->{$getter}()->getHelperTable());
$query->get($field, $alias);
if (!$property->isRequired()) {
$query->andWhere(Expression::notNull($field));
}
try {
$rows = $dao->getCustomList($query);
foreach ($rows as $row) {
if (!empty($row[$alias])) {
$collection[$row[$id]][] = $row[$alias];
}
}
} catch (ObjectNotFoundException $e) {
/*_*/
}
} else {
$prefix = $table . '_';
foreach ($dao->getFields() as $field) {
$query->get(DBField::create($field, $table), $prefix . $field);
}
if (!$property->isRequired()) {
$query->andWhere(Expression::notNull(DBField::create($dao->getIdName(), $table)));
}
try {
// otherwise we don't know which object
// belongs to which collection
$rows = $dao->getCustomList($query);
foreach ($rows as $row) {
$collection[$row[$id]][] = $dao->makeObject($row, $prefix);
}
} catch (ObjectNotFoundException $e) {
/*_*/
}
}
$suffix = ucfirst($property->getName());
$fillMethod = 'fill' . $suffix;
$getMethod = 'get' . $suffix;
Assert::isTrue(method_exists(reset($list), $fillMethod), 'can not find filler');
Assert::isTrue(method_exists(reset($list), $getMethod), 'can not find getter');
foreach ($list as $object) {
if (!empty($collection[$object->getId()])) {
$object->{$fillMethod}($collection[$object->getId()], $lazy);
} else {
$object->{$getMethod}()->mergeList(array());
}
}
}
return $list;
}