public function getData()
{
$data = $this->db->fetchRow('SELECT * FROM object_store_' . $this->model->getClassId() . ' WHERE oo_id = ?', $this->model->getId());
foreach ($this->model->getClass()->getFieldDefinitions() as $key => $value) {
if (method_exists($value, "load")) {
// datafield has it's own loader
$value = $value->load($this->model);
if ($value === 0 || !empty($value)) {
$this->model->setValue($key, $value);
}
} else {
// if a datafield requires more than one field
if (is_array($value->getColumnType())) {
$multidata = [];
foreach ($value->getColumnType() as $fkey => $fvalue) {
$multidata[$key . "__" . $fkey] = $data[$key . "__" . $fkey];
}
$this->model->setValue($key, $this->model->getClass()->getFieldDefinition($key)->getDataFromResource($multidata));
} else {
$this->model->setValue($key, $value->getDataFromResource($data[$key], $this->model));
}
}
}
}