private function prepareData()
{
$this->errors = array();
$sqlData = array();
if (count($this->data) == 0) {
return array();
}
if (method_exists($this, "preLoad")) {
$this->preLoad($this->data);
}
if (!$this->dbFields) {
return $this->data;
}
foreach ($this->data as $key => &$value) {
if ($value instanceof dbObject && $value->isNew == true) {
$id = $value->save();
if ($id) {
$value = $id;
} else {
$this->errors = array_merge($this->errors, $value->errors);
}
}
if (!in_array($key, array_keys($this->dbFields))) {
continue;
}
if (!is_array($value)) {
$sqlData[$key] = $value;
continue;
}
if (isset($this->jsonFields) && in_array($key, $this->jsonFields)) {
$sqlData[$key] = json_encode($value);
} else {
if (isset($this->arrayFields) && in_array($key, $this->arrayFields)) {
$sqlData[$key] = implode("|", $value);
} else {
$sqlData[$key] = $value;
}
}
}
return $sqlData;
}