CRM-21052 - Activity.create API - Abide by setting `civicaseActivityRevisions`
[civicrm-core.git] / api / v3 / utils.php
index dd55453e45828307ab90233a580060099fe9feab..9f4288670b7402085ea4ece1ab20c6fbbd21ca3e 100644 (file)
@@ -922,8 +922,10 @@ function _civicrm_api3_build_fields_array(&$bao, $unique = TRUE) {
   if ($unique) {
     if (empty($fields['id'])) {
       $lowercase_entity = _civicrm_api_get_entity_name_from_camel(_civicrm_api_get_entity_name_from_dao($bao));
-      $fields['id'] = $fields[$lowercase_entity . '_id'];
-      unset($fields[$lowercase_entity . '_id']);
+      if (isset($fields[$lowercase_entity . '_id'])) {
+        $fields['id'] = $fields[$lowercase_entity . '_id'];
+        unset($fields[$lowercase_entity . '_id']);
+      }
     }
     return $fields;
   }
@@ -1641,7 +1643,9 @@ function _civicrm_api3_validate_foreign_keys($entity, $action, &$params, $fields
   foreach ($fields as $fieldName => $fieldInfo) {
     if (!empty($fieldInfo['FKClassName'])) {
       if (!empty($params[$fieldName])) {
-        _civicrm_api3_validate_constraint($params[$fieldName], $fieldName, $fieldInfo);
+        foreach ((array) $params[$fieldName] as $fieldValue) {
+          _civicrm_api3_validate_constraint($fieldValue, $fieldName, $fieldInfo);
+        }
       }
       elseif (!empty($fieldInfo['required'])) {
         throw new Exception("DB Constraint Violation - $fieldName should possibly be marked as mandatory for $entity,$action API. If so, please raise a bug report.");