BUGFIX Ensure that a single string value (as opposed to an array of

values) is accepted by implode() in CheckboxSetField by casting it
as an array.
This commit is contained in:
Sean Harvey 2012-06-11 13:39:18 +12:00
parent 86bdd167cc
commit 3f68e6f82f

View File

@ -179,7 +179,7 @@ class CheckboxSetField extends OptionsetField {
if($fieldname && $record && $relation && $relation instanceof RelationList) { if($fieldname && $record && $relation && $relation instanceof RelationList) {
$idList = array(); $idList = array();
if($this->value) foreach($this->value as $id => $bool) { if($this->value) foreach($this->value as $id => $bool) {
if($bool) { if($bool) {
$idList[] = $id; $idList[] = $id;
} }
} }
@ -187,7 +187,7 @@ class CheckboxSetField extends OptionsetField {
} elseif($fieldname && $record) { } elseif($fieldname && $record) {
if($this->value) { if($this->value) {
$this->value = str_replace(',', '{comma}', $this->value); $this->value = str_replace(',', '{comma}', $this->value);
$record->$fieldname = implode(",", $this->value); $record->$fieldname = implode(',', (array) $this->value);
} else { } else {
$record->$fieldname = ''; $record->$fieldname = '';
} }