浏览代码

Make sure it also works for non entity results. Also do not set field to dirty.

dereuromark 8 年之前
父节点
当前提交
f83e79a6f1
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10 0
      src/Model/Behavior/BitmaskedBehavior.php

+ 10 - 0
src/Model/Behavior/BitmaskedBehavior.php

@@ -97,7 +97,17 @@ class BitmaskedBehavior extends Behavior {
 		}
 		}
 
 
 		$mapper = function ($row, $key, $mr) use ($field, $mappedField) {
 		$mapper = function ($row, $key, $mr) use ($field, $mappedField) {
+			if (!is_object($row)) {
+				if (isset($row[$field])) {
+					$row[$mappedField] = $this->decodeBitmask($row[$field]);
+				}
+				$mr->emit($row);
+				return;
+			}
+
+			/** @var EntityInterface $row */
 			$row->set($mappedField, $this->decodeBitmask($row->get($field)));
 			$row->set($mappedField, $this->decodeBitmask($row->get($field)));
+			$row->setDirty($mappedField, false);
 			$mr->emit($row);
 			$mr->emit($row);
 		};
 		};
 		$query->mapReduce($mapper);
 		$query->mapReduce($mapper);