mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
Fix DataObjectSet constructor breaking with associative arrays
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@47873 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
d0827cc3ef
commit
05051ef484
@ -75,18 +75,18 @@ class DataObjectSet extends ViewableData implements Iterator {
|
|||||||
$itemsArr = (!is_array($items) || count(func_get_args()) > 1) ? func_get_args() : $items;
|
$itemsArr = (!is_array($items) || count(func_get_args()) > 1) ? func_get_args() : $items;
|
||||||
|
|
||||||
// We now have support for using the key of a data object set
|
// We now have support for using the key of a data object set
|
||||||
for($i=0; $i<count($itemsArr); $i++) {
|
foreach($itemsArr as $i => $item) {
|
||||||
if(is_subclass_of($itemsArr[$i], 'ViewableData')) {
|
if(is_subclass_of($item, 'ViewableData')) {
|
||||||
$this->items[] = $itemsArr[$i];
|
$this->items[$i] = $item;
|
||||||
} elseif(is_object($itemsArr[$i]) || ArrayLib::is_associative($itemsArr[$i])) {
|
} elseif(is_object($item) || ArrayLib::is_associative($item)) {
|
||||||
$this->items[] = new ArrayData($itemsArr[$i]);
|
$this->items[$i] = new ArrayData($item);
|
||||||
} else {
|
} else {
|
||||||
user_error(
|
user_error(
|
||||||
"DataObjectSet::__construct: Passed item #{$i} is not an object or associative array,
|
"DataObjectSet::__construct: Passed item #{$i} is not an object or associative array,
|
||||||
can't be properly iterated on in templates",
|
can't be properly iterated on in templates",
|
||||||
E_USER_WARNING
|
E_USER_WARNING
|
||||||
);
|
);
|
||||||
$this->items[] = $itemsArr[$i];
|
$this->items[$i] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user