public static function targetToData(OrchestrationRule $entity, $object) { /* @var $entity FarmRoleScript */ parent::targetToData($entity, $object); if ($entity->target == static::TARGET_VALUE_SPECIFIED_FARM_ROLE) { /* @var $entity FarmRoleScript */ $farmRole = new FarmRole(); $targets = new FarmRoleScriptingTarget(); /* @var $target FarmRole */ foreach (FarmRole::find([['farmId' => $entity->farmId], AbstractEntity::STMT_FROM => "{$farmRole->table()} JOIN {$targets->table('t')} ON {$targets->columnTarget('t')} = {$farmRole->columnAlias()}", AbstractEntity::STMT_WHERE => "{$targets->columnFarmRoleScriptId('t')} = {$targets->qstr('farmRoleScriptId', $entity->id)} AND {$targets->columnTargetType('t')} = {$targets->qstr('targetType', OrchestrationRule::TARGET_ROLES)}"]) as $target) { $object->target->roles[] = ['id' => $target->id]; } } }
/** * {@inheritdoc} * @see AbstractEntity::__get() */ public function __get($name) { switch ($name) { case 'targets': if (empty($this->_targets)) { $this->_targets = FarmRoleScriptingTarget::findByFarmRoleScriptId($this->id)->getArrayCopy(); } return $this->_targets; default: return parent::__get($name); } }