diff options
Diffstat (limited to 'modules/field/field.api.php')
-rw-r--r-- | modules/field/field.api.php | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/field/field.api.php b/modules/field/field.api.php index 71c97fe50..1f4eca048 100644 --- a/modules/field/field.api.php +++ b/modules/field/field.api.php @@ -1792,3 +1792,22 @@ function hook_field_storage_purge($entity_type, $entity, $field, $instance) { */ function hook_field_access($op, $field, $entity_type, $entity, $account) { } + +/** + * Allows a module to object to a field definition update. + * + * The module should throw a FieldUpdateForbiddenException to indicate + * that the update should not proceed. + * + * @param $field + * The updated field structure that a module is attempting to save. + * @param $prior_field + * The currently-saved field structure. + * @param $has_data + * TRUE if the field has data in storage currently. + */ +function hook_field_update_forbid($field, $prior_field, $has_data) { + if ($has_data && $field['columns'] != $prior_field['columns']) { + throw new FieldUpdateForbiddenException("field_sql_storage cannot change the schema for an existing field with data."); + } +} |