diff --git a/DataStorage/Database/DataMapperAbstract.php b/DataStorage/Database/DataMapperAbstract.php index 579820dce..7f934cdf8 100644 --- a/DataStorage/Database/DataMapperAbstract.php +++ b/DataStorage/Database/DataMapperAbstract.php @@ -1878,7 +1878,7 @@ class DataMapperAbstract implements DataMapperInterface $countResulsts = count($obj); if($countResulsts === 0) { - return null; + return self::getNullModelObj(); } elseif($countResulsts === 1) { return reset($obj); } @@ -1886,6 +1886,18 @@ class DataMapperAbstract implements DataMapperInterface return $obj; } + private static function getNullModelObj() + { + $class = static::class; + $class = str_replace('Mapper', '', $class); + $parts = explode('\\', $class); + $name = $parts[$c = (count($parts) - 1)]; + $parts[$c] = 'Null' . $name; + $class = implode('\\', $parts); + + return new $class(); + } + /** * Get object. * @@ -1961,7 +1973,7 @@ class DataMapperAbstract implements DataMapperInterface $countResulsts = count($obj); if($countResulsts === 0) { - return null; + return self::getNullModelObj(); } elseif($countResulsts === 1) { return reset($obj); } @@ -2465,13 +2477,7 @@ class DataMapperAbstract implements DataMapperInterface $result = static::getAllByQuery($query); } } else { - $class = static::class; - $class = str_replace('Mapper', '', $class); - $parts = explode('\\', $class); - $name = $parts[$c = (count($parts) - 1)]; - $parts[$c] = 'Null' . $name; - $class = implode('\\', $parts); - $result = new $class(); + return self::getNullModelObj(); } return $result;