diff --git a/dbObject.php b/dbObject.php index b4e89d2d..833c4304 100644 --- a/dbObject.php +++ b/dbObject.php @@ -521,18 +521,23 @@ private function processAllWith (&$data, $shouldReset = true) { if ($relationType == 'hasone') { $obj = new $modelName; $table = $obj->dbTable; - + $primaryKey = $obj->primaryKey; + if (!isset ($data[$table])) { $data[$name] = $this->$name; continue; - } - if ($this->returnType == 'Object') { - $item = new $modelName ($data[$table]); - $item->returnType = $this->returnType; - $item->isNew = false; - $data[$name] = $item; + } + if ($data[$table][$primaryKey] === null) { + $data[$name] = null; } else { - $data[$name] = $data[$table]; + if ($this->returnType == 'Object') { + $item = new $modelName ($data[$table]); + $item->returnType = $this->returnType; + $item->isNew = false + $data[$name] = $item; + } else { + $data[$name] = $data[$table]; + } } unset ($data[$table]); }