Pimcore\Model\Object\ClassDefinition\Data\MultihrefMetadata::getDataFromResource PHP Method

getDataFromResource() public method

See also: Object\ClassDefinition\Data::getDataFromResource
public getDataFromResource ( array $data, null | AbstractObject $object = null, mixed $params = [] ) : array
$data array
$object null | Pimcore\Model\Object\AbstractObject
$params mixed
return array
    public function getDataFromResource($data, $object = null, $params = [])
    {
        $list = [];
        if (is_array($data) && count($data) > 0) {
            foreach ($data as $element) {
                $destination = null;
                $source = Object::getById($element["src_id"]);
                if ($element["type"] == "object") {
                    $destination = Object::getById($element["dest_id"]);
                } elseif ($element["type"] == "asset") {
                    $destination = Asset::getById($element["dest_id"]);
                } elseif ($element["type"] == "document") {
                    $destination = Document::getById($element["dest_id"]);
                }
                if ($destination instanceof Element\ElementInterface) {
                    $metaData = \Pimcore::getDiContainer()->make('Pimcore\\Model\\Object\\Data\\ElementMetadata', ["fieldname" => $this->getName(), "columns" => $this->getColumnKeys(), "element" => $destination]);
                    $ownertype = $element["ownertype"] ? $element["ownertype"] : "";
                    $ownername = $element["ownername"] ? $element["ownername"] : "";
                    $position = $element["position"] ? $element["position"] : "0";
                    $type = $element["type"];
                    $metaData->load($source, $destination, $this->getName(), $ownertype, $ownername, $position, $type);
                    $objects[] = $metaData;
                    $list[] = $metaData;
                }
            }
        }
        //must return array - otherwise this means data is not loaded
        return $list;
    }