本文整理汇总了PHP中Doctrine\Common\Collections\ArrayCollection::getMapping方法的典型用法代码示例。如果您正苦于以下问题:PHP ArrayCollection::getMapping方法的具体用法?PHP ArrayCollection::getMapping怎么用?PHP ArrayCollection::getMapping使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine\Common\Collections\ArrayCollection
的用法示例。
在下文中一共展示了ArrayCollection::getMapping方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: toMany
/**
* @param mixed $valueOrObject
* @param string $target
* @return array
*/
protected function toMany($valueOrObject, $target, Collection $collection = null, $depth = 2)
{
if (!is_array($valueOrObject) && !$valueOrObject instanceof Traversable) {
$valueOrObject = (array) $valueOrObject;
}
if (!$collection instanceof Collection) {
$collection = new ArrayCollection();
}
$keepers = array();
foreach ($valueOrObject as $value) {
if (method_exists($value, 'toArray')) {
$value = $value->toArray($depth);
} else {
if (!is_array($value) && !$value instanceof Traversable) {
$value = (array) $value;
}
}
if (isset($value['id']) && strlen($value['id']) && ($found = $this->find($target, $value['id']))) {
$keepers[] = $found->id;
$this->hydrate($value, $found);
} else {
$obj = new $target();
$obj->fromArray($value);
$obj->id = null;
if ($collection instanceof PersistentCollection) {
if ($owner = $collection->getOwner()) {
$mapping = $collection->getMapping();
$mappedBy = $mapping['mappedBy'];
$obj->{$mappedBy} = $owner;
}
}
$collection->add($obj);
}
}
$collection->forAll(function ($key, $element) use($collection, $keepers) {
if (strlen($element->id) && !in_array($element->id, $keepers)) {
$collection->remove($key);
}
});
return $collection;
}