Drupal 7 更改钩子\字段\验证的$items值

Drupal 7 更改钩子\字段\验证的$items值,drupal-7,Drupal 7,im构建模块,向drupal中已经存在的字段添加新的小部件 . drupal使用此钩子验证此字段 function list_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) { $allowed_values = list_allowed_values($field); foreach ($items as $delta => $item) {

im构建模块,向drupal中已经存在的字段添加新的小部件 . drupal使用此钩子验证此字段

function list_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
  $allowed_values = list_allowed_values($field);
  foreach ($items as $delta => $item) {
    if (!empty($item['value'])) { // =======> the problem is here
      if (!empty($allowed_values) && !isset($allowed_values[$item['value']])) {
        $errors[$field['field_name']][$langcode][$delta][] = array(
          'error' => 'list_illegal_value', 
          'message' => t('%name: illegal value.', array('%name' => $instance['label'])),
        );
      }
    }
  }
}
问题是: 当我用我的新窗口小部件添加新字段…并保存字段设置时,我收到消息:

列出非法的值 然后我发现$item没有键['value']

foreach ($items as $delta => $item) {
我的结果是$item it self no$item['value'] 那么我如何在不修改
核心验证挂钩

好的,这个问题为我解决了。。。 如果您为exist字段创建了一个新的小部件并发现此错误

列出非法的值

确保您已经按照以下方式创建了小部件表单

$element['value'] += array( // dont forget ['value'] it will couse this problem
'#title' => t( '@title' , array('@title' => $label)) , 
'#type' => 'select' , 
...etc