db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); $this->table = "Netzgebiet"; } public function loadByExtref($extref) { $extref = $this->db->escape(trim($extref)); if(!$extref) { return false; } $res = $this->db->select("Netzgebiet", "*", "extref='$extref'"); if(!$this->db->num_rows($res)) { return false; } $data = $this->db->fetch_object($res); $this->load($data); return true; } public function getOption($opt) { $options = $this->getOptions(); if(!$options) return null; if(property_exists($options, $opt)) { return $options->$opt; } return null; } public function getOptions() { if(!$this->options) { return false; } $opts = json_decode($this->options); if(json_last_error() != JSON_ERROR_NONE) { return null; } return $opts; } public function getProperty($name) { if($this->$name == null) { if($name == "gemeinden") { $gemeinden = []; foreach(ADBGemeindeNetzgebietModel::search(["netzgebiet_id" => $this->id]) as $gem_netz) { $g = $gem_netz->gemeinde; if(!$g || array_key_exists($g->gemeinde_id, $gemeinden)) continue; //var_dump($g);exit; $gemeinden[$g->id] = $g; } if(count($gemeinden)) { $this->gemeinden = $gemeinden; } return $this->gemeinden; } $classname = ucfirst($name); $idfield = $name."_id"; $this->$name = new $classname($this->$idfield); if($this->$name->id) { return $this->$name; } else { return null; } } return $this->$name; } }