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);
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;