DBFarmRole::Load PHP Метод

Load() публичный статический Метод

Load DBInstance by database id
public static Load ( $farmid, $roleid, $cloudLocation ) : DBFarmRole
Результат DBFarmRole
    public static function Load($farmid, $roleid, $cloudLocation)
    {
        $db = \Scalr::getDb();
        $farm_role_info = $db->GetRow("SELECT * FROM farm_roles WHERE farmid=? AND role_id=? AND cloud_location=? LIMIT 1", array($farmid, $roleid, $cloudLocation));
        if (!$farm_role_info) {
            throw new Exception(sprintf(_("Role #%s is not assigned to farm #%s"), $roleid, $farmid));
        }
        $DBFarmRole = new DBFarmRole($farm_role_info['id']);
        foreach (self::$FieldPropertyMap as $k => $v) {
            $DBFarmRole->{$v} = $farm_role_info[$k];
        }
        return $DBFarmRole;
    }

Usage Example

Пример #1
0
 public function xGetRoleParamsAction()
 {
     $this->request->defineParams(array('roleId' => array('type' => 'int'), 'farmId' => array('type' => 'int'), 'cloudLocation'));
     try {
         $dbRole = DBRole::loadById($this->getParam('roleId'));
         if ($dbRole->envId != 0) {
             $this->user->getPermissions()->validate($dbRole);
         }
     } catch (Exception $e) {
         $this->response->data(array('params' => array()));
         return;
     }
     $params = $this->db->GetAll("SELECT * FROM role_parameters WHERE role_id=? AND hash NOT IN('apache_http_vhost_template','apache_https_vhost_template')", array($dbRole->id));
     foreach ($params as $key => $param) {
         $value = false;
         try {
             if ($this->getParam('farmId')) {
                 $dbFarmRole = DBFarmRole::Load($this->getParam('farmId'), $this->getParam('roleId'), $this->getParam('cloudLocation'));
                 $value = $this->db->GetOne("SELECT value FROM farm_role_options WHERE farm_roleid=? AND hash=? LIMIT 1", array($dbFarmRole->ID, $param['hash']));
             }
         } catch (Exception $e) {
         }
         // Get field value
         if ($value === false || $value === null) {
             $value = $param['defval'];
         }
         $params[$key]['value'] = str_replace("\r", "", $value);
     }
     $this->response->data(array('params' => $params));
 }