From b921c9e0e5f1b8cd22c0b535a47e5c6f22a5f5a8 Mon Sep 17 00:00:00 2001 From: KTP95 Date: Fri, 1 Jan 2016 15:06:04 +0100 Subject: [PATCH 1/2] fix $obj->anotherRelatedObj === null when not exists --- dbObject.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/dbObject.php b/dbObject.php index b4e89d2d..3f79d2ad 100644 --- a/dbObject.php +++ b/dbObject.php @@ -16,7 +16,7 @@ * @method dbObject ObjectBuilder() * @method mixed byId (string $id, mixed $fields) * @method mixed get (mixed $limit, mixed $fields) - * @method mixed getOne (mixed $fields) + * @method mixed getOne (mixed $fields)processAllWith * @method mixed paginate (int $page, array $fields) * @method dbObject query ($query, $numRows) * @method dbObject rawQuery ($query, $bindParams, $sanitize) @@ -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]); } From c0ac21df31d98c18f639a536751bdba1759f0df2 Mon Sep 17 00:00:00 2001 From: KTP95 Date: Fri, 1 Jan 2016 15:17:40 +0100 Subject: [PATCH 2/2] fix $obj->anotherRelatedObj === null when not exists clean code --- dbObject.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbObject.php b/dbObject.php index 3f79d2ad..833c4304 100644 --- a/dbObject.php +++ b/dbObject.php @@ -16,7 +16,7 @@ * @method dbObject ObjectBuilder() * @method mixed byId (string $id, mixed $fields) * @method mixed get (mixed $limit, mixed $fields) - * @method mixed getOne (mixed $fields)processAllWith + * @method mixed getOne (mixed $fields) * @method mixed paginate (int $page, array $fields) * @method dbObject query ($query, $numRows) * @method dbObject rawQuery ($query, $bindParams, $sanitize)