function FieldStorageConfigEditForm::getCardinalityForm

Same name and namespace in other branches
  1. 9 core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php \Drupal\field_ui\Form\FieldStorageConfigEditForm::getCardinalityForm()
  2. 8.9.x core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php \Drupal\field_ui\Form\FieldStorageConfigEditForm::getCardinalityForm()
  3. 10 core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php \Drupal\field_ui\Form\FieldStorageConfigEditForm::getCardinalityForm()

Builds the cardinality form.

Return value

array The cardinality form render array.

1 call to FieldStorageConfigEditForm::getCardinalityForm()
FieldStorageConfigEditForm::form in core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php
Gets the actual form array to be built.

File

core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php, line 133

Class

FieldStorageConfigEditForm
Provides a form for the "field storage" edit page.

Namespace

Drupal\field_ui\Form

Code

protected function getCardinalityForm() {
    $form = [
        // Reset #parents so the additional container does not appear.
'#parents' => [],
        '#type' => 'fieldset',
        '#title' => $this->t('Allowed number of values'),
        '#attributes' => [
            'class' => [
                'container-inline',
                'fieldgroup',
                'form-composite',
            ],
        ],
    ];
    if ($enforced_cardinality = $this->getEnforcedCardinality()) {
        if ($enforced_cardinality === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) {
            $markup = $this->t("This field cardinality is set to unlimited and cannot be configured.");
        }
        else {
            $markup = $this->t("This field cardinality is set to @cardinality and cannot be configured.", [
                '@cardinality' => $enforced_cardinality,
            ]);
        }
        $form['cardinality'] = [
            '#markup' => $markup,
        ];
    }
    else {
        $form['#element_validate'][] = [
            $this,
            'validateCardinality',
        ];
        $cardinality = $this->entity
            ->getCardinality();
        $form['cardinality'] = [
            '#type' => 'select',
            '#title' => $this->t('Allowed number of values'),
            '#title_display' => 'invisible',
            '#options' => [
                'number' => $this->t('Limited'),
                FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED => $this->t('Unlimited'),
            ],
            '#default_value' => $cardinality == FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED ? FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED : 'number',
        ];
        $form['cardinality_number'] = [
            '#type' => 'number',
            '#default_value' => $cardinality != FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED ? $cardinality : 1,
            '#min' => 1,
            '#title' => $this->t('Limit'),
            '#title_display' => 'invisible',
            '#size' => 2,
            '#states' => [
                'visible' => [
                    ':input[name="field_storage[subform][cardinality]"]' => [
                        'value' => 'number',
                    ],
                ],
                'disabled' => [
                    ':input[id="field_storage[subform][cardinality]"]' => [
                        'value' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
                    ],
                ],
            ],
        ];
    }
    return $form;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.