浏览代码

#1210 (reopened) ...fixed a regression on commit [r3936]: dependent fields could not be loaded when there are link set attribute in the current form

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3938 a333f486-631f-4898-b8df-5754b55c2be0
romainq 9 年之前
父节点
当前提交
6b50994607
共有 1 个文件被更改,包括 10 次插入6 次删除
  1. 10 6
      core/dbobject.class.php

+ 10 - 6
core/dbobject.class.php

@@ -386,15 +386,19 @@ abstract class DBObject implements iDisplay
 				}
 				}
 			}
 			}
 		}
 		}
-		if(!$oAttDef->IsScalar() && !is_object($value))
-		{
-			throw new CoreUnexpectedValue("scalar not allowed for attribute '$sAttCode', setting default value (empty list)");
-		}
 		if($oAttDef->IsLinkSet())
 		if($oAttDef->IsLinkSet())
 		{
 		{
-			if((get_class($value) != 'DBObjectSet') && !is_subclass_of($value, 'DBObjectSet'))
+			if (is_null($value))
 			{
 			{
-				throw new CoreUnexpectedValue("expecting a set of persistent objects (found a '".get_class($value)."'), setting default value (empty list)");
+				// Normalize
+				$value = DBObjectSet::FromScratch($oAttDef->GetLinkedClass());
+			}
+			else
+			{
+				if ((get_class($value) != 'DBObjectSet') && !is_subclass_of($value, 'DBObjectSet'))
+				{
+					throw new CoreUnexpectedValue("expecting a set of persistent objects (found a '".get_class($value)."'), setting default value (empty list)");
+				}
 			}
 			}
 
 
 			$oObjectSet = $value;
 			$oObjectSet = $value;