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

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

Без привязки

protected $region = null;

    /**
     * Loads glRegion
     */
    public function loadRegion()
    {
        if (!is_object($this->region) || !($this->region instanceof glRegion)) {
            $region_id = $this->get('region_id');
            if (!$this->region = $this->xpdo->getObject('glRegion', $region_id)) {
                $this->region = $this->xpdo->newObject('glRegion');
            }
        }
        return $this->region;
    }

С привязкой one

        /**
     * 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_'));
    }
09 ноября 2017, 03:48    15



Наверх