Return null obj in datamapper

This commit is contained in:
Dennis Eichhorn 2017-09-28 11:00:07 +02:00
parent 0733b0e705
commit 69123a0b24

View File

@ -1878,7 +1878,7 @@ class DataMapperAbstract implements DataMapperInterface
$countResulsts = count($obj); $countResulsts = count($obj);
if($countResulsts === 0) { if($countResulsts === 0) {
return null; return self::getNullModelObj();
} elseif($countResulsts === 1) { } elseif($countResulsts === 1) {
return reset($obj); return reset($obj);
} }
@ -1886,6 +1886,18 @@ class DataMapperAbstract implements DataMapperInterface
return $obj; 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. * Get object.
* *
@ -1961,7 +1973,7 @@ class DataMapperAbstract implements DataMapperInterface
$countResulsts = count($obj); $countResulsts = count($obj);
if($countResulsts === 0) { if($countResulsts === 0) {
return null; return self::getNullModelObj();
} elseif($countResulsts === 1) { } elseif($countResulsts === 1) {
return reset($obj); return reset($obj);
} }
@ -2465,13 +2477,7 @@ class DataMapperAbstract implements DataMapperInterface
$result = static::getAllByQuery($query); $result = static::getAllByQuery($query);
} }
} else { } else {
$class = static::class; return self::getNullModelObj();
$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 $result; return $result;