BUGFIX (by simon_w) Recursively create ArrayData from Objects in ArrayData->getField() (patch from #2600)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@58304 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2008-07-17 21:44:47 +00:00
parent 43f83fb209
commit fac78448a7

View File

@ -35,7 +35,7 @@ class ArrayData extends ViewableData {
}
public function getField($f) {
if(is_array($this->array[$f])) {
if((is_object($this->array[$f]) && !$this->array[$f] instanceof ArrayData) || (is_array($this->array[$f]) && ArrayLib::is_associative($this->array[$f]))) {
return new ArrayData($this->array[$f]);
} else {
return $this->array[$f];
@ -49,13 +49,11 @@ class ArrayData extends ViewableData {
/**
* Converts an object with simple properties to
* an associative array.
*
* @todo Allow for recursive creation of DataObjectSets when property value is an object/array
*
* @param obj $obj
* @return array
*/
static function object_to_array($obj) {
protected static function object_to_array($obj) {
$arr = array();
foreach($obj as $k=>$v) {
$arr[$k] = $v;