Pimcore\Model\Object\Concrete\Dao::getRelationData PHP Метод

getRelationData() публичный Метод

public getRelationData ( string $field, $forOwner, $remoteClassId ) : array
$field string
Результат array
    public function getRelationData($field, $forOwner, $remoteClassId)
    {
        $id = $this->model->getId();
        if ($remoteClassId) {
            $classId = $remoteClassId;
        } else {
            $classId = $this->model->getClassId();
        }
        $params = [$field, $id, $field, $id, $field, $id];
        $dest = "dest_id";
        $src = "src_id";
        if (!$forOwner) {
            $dest = "src_id";
            $src = "dest_id";
        }
        $relations = $this->db->fetchAll("SELECT r." . $dest . " as dest_id, r." . $dest . " as id, r.type, o.o_className as subtype, concat(o.o_path ,o.o_key) as path , r.index\n            FROM objects o, object_relations_" . $classId . " r\n            WHERE r.fieldname= ?\n            AND r.ownertype = 'object'\n            AND r." . $src . " = ?\n            AND o.o_id = r." . $dest . "\n            AND r.type='object'\n\n            UNION SELECT r." . $dest . " as dest_id, r." . $dest . " as id, r.type,  a.type as subtype,  concat(a.path,a.filename) as path, r.index\n            FROM assets a, object_relations_" . $classId . " r\n            WHERE r.fieldname= ?\n            AND r.ownertype = 'object'\n            AND r." . $src . " = ?\n            AND a.id = r." . $dest . "\n            AND r.type='asset'\n\n            UNION SELECT r." . $dest . " as dest_id, r." . $dest . " as id, r.type, d.type as subtype, concat(d.path,d.key) as path, r.index\n            FROM documents d, object_relations_" . $classId . " r\n            WHERE r.fieldname= ?\n            AND r.ownertype = 'object'\n            AND r." . $src . " = ?\n            AND d.id = r." . $dest . "\n            AND r.type='document'\n\n            ORDER BY `index` ASC", $params);
        if (is_array($relations) and count($relations) > 0) {
            return $relations;
        } else {
            return [];
        }
    }