답변:
카디널리티 옵션은 field_ui_field_edit_form()
다음 코드 행을 사용 하여 함수에 하드 코딩됩니다 .
$form['field']['cardinality'] = array(
'#type' => 'select',
'#title' => t('Number of values'),
'#options' => array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + drupal_map_assoc(range(1, 10)),
'#default_value' => $field['cardinality'],
'#description' => $description,
);
drupal_map_assoc(range(1, 10))
숫자를 10으로 제한 하는 줄입니다.
비록 최대 카디널리티가 다른 곳 어디에서나 (적어도 코어가 아닌) 유효성을 검사 (또는 더 제한적)하는 것처럼 보이지 않으므로 alter alter hook 양식을 사용하여 해당 값에 대한 더 많은 옵션을 제공하는 것이 매우 쉽습니다.
function MYMODULE_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
// Increase the max cardinality to 20
$range = drupal_map_assoc(range(1, 20));
$new_options = array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + $range;
// Change the options
$form['field']['cardinality']['#options'] = $new_options;
}
방금 시도했지만 부작용이 전혀없는 것 같습니다. 필드 시스템은 10보다 높은 카디널리티를 설정하고 관리 UI에서 필드를 편집 할 때 문제없이 저장합니다.
이 샌드 박스 프로젝트를 사용하여 동일한 문제를 해결했습니다. https://www.drupal.org/sandbox/ydahi/2421885
값 수의 범위를 설정하는 UI를 제공합니다.