protected function mapChoice(Constraints\Choice $constraint, IControlConfig $config) { if ($config->getType() === "string") { if ($constraint->multiple) { $config->setType(IControlConfig::CHECKBOX_LIST); } else { $config->setType(IControlConfig::RADIO_LIST); } } }
/** * @param IControlConfig $controlConfig * @throws \NForms\Exceptions\FieldNotFoundException */ protected function setupControlConfig(IControlConfig $controlConfig) { $name = $controlConfig->getFieldName(); $classMetadata = $this->getClassMetadata(); if ($classMetadata->hasField($name)) { $controlConfig->setMapping($classMetadata->getFieldMapping($name)); $controlConfig->setType($classMetadata->getFieldType($name)); } elseif ($classMetadata->hasAssociation($name)) { $controlConfig->setMapping($classMetadata->getAssociationMapping($name)); $controlConfig->setTargetClass($classMetadata->getAssociationTargetClass($name)); $controlConfig->setType($classMetadata->isSingleValuedAssociation($name) ? IControlConfig::TO_ONE : IControlConfig::TO_MANY); } else { throw new FieldNotFoundException("Field/association '{$name}' was not found in '{$this->targetClass}' class."); } $controlConfig->setParentClassName($classMetadata->getClass()); $controlConfig->setLabel($this->getLabelFor($controlConfig)); $constraintMetadata = $this->getConstraintMetadata(); if ($constraintMetadata) { $controlConfig->setConstraints($constraintMetadata->getConstraintsForField($name)); } }