/** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $fields = []; $className = $options['className']; $fieldConfigIds = $this->entityProvider->getIds($className); /** @var FieldConfigId $fieldConfigId */ foreach ($fieldConfigIds as $fieldConfigId) { if ($fieldConfigId->getFieldType() === RelationTypeBase::TO_MANY) { continue; } $fieldName = $fieldConfigId->getFieldName(); $fields[$fieldName] = $this->entityProvider->getConfig($className, $fieldName)->get('label', false, ucfirst($fieldName)); } $builder->add('keys', 'collection', array('required' => true, 'type' => new UniqueKeyType($fields), 'allow_add' => true, 'allow_delete' => true, 'prototype' => true, 'prototype_name' => 'tag__name__', 'label' => false, 'constraints' => [new UniqueKeys()])); }