Загрузка Агрегатных связей

Загрузка связей по модели aggregate one для MODX REVOLUTION

Без привязки

    /* @var null|false|modResource $resource */
    protected $resource = null;

    /**
     * @param bool $returnArray - false вернет массив объекта
     * @return bool|modResource|null|object|xPDOObject
     */
    public function loadResource($returnArray = false)
    {
        if (!is_object($this->resource) || !($this->resource instanceof modResource )) {
            if (!$this->resource= $this->getOne('Resource')) {
                $this->resource= $returnArray ? false : $this->xpdo->newObject('modResource ');
            }
        }
        return $this->resource;
    }

С привязкой one

protected $region = null;

     /**
     * Loads glData
     */
    public function loadData($false = false)
    {
        if (!is_object($this->data) || !($this->data instanceof glData)) {
            if (!$this->data = $this->getOne('Data')) {
                $this->data = $false ? false : $this->xpdo->newObject('glData');
            }
        }
        return $this->data;
    }

Загрузка one при экспорте объекта в массив

    /**
     * {@inheritdoc}
     */
    public function toArray($keyPrefix = '', $rawValues = false, $excludeLazy = false, $includeRelated = false)
    {
        $array = parent::toArray($keyPrefix, $rawValues, $excludeLazy, $includeRelated);
        return $array;
        return array_merge($array, $this->loadKladr()->toArray($keyPrefix.'kladr_'), $this->loadFias()->toArray($keyPrefix.'fias_'));
    }

getMany


    /* @var msCmlMsClassifierField[]|null $classifiares */
    protected $classifiares = null;

    /**
     * Load ClassifierFields
     * @return msCmlMsClassifierField[]|null
     */
    public function loadClassifiar()
    {
        if (!is_array($this->classifiares)) {
            /* @var msCmlMsClassifierField $item */
            if ($items = $this->getMany('ClassifierFields')) {
                /* @var msCmlMsClassifierField $item */
                foreach ($items as $item) {
                    $this->classifiares[] = $item;
                }
            }
        }
        return $this->classifiares;
    }
21 декабря 2018, 10:22    847

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Наверх