Example #1
0
 /**
  * {@inheritDoc}
  */
 public function renderErrors(FieldInterface $field)
 {
     $html = '';
     if ($field->hasErrors()) {
         $html .= "<ul>\n";
         foreach ($field->getErrors() as $error) {
             $html .= "<li>" . $error . "</li>\n";
         }
         $html .= "</ul>\n";
     }
     return $html;
 }
Example #2
0
 /**
  * Repeats the given field twice to verify the user's input
  *
  * @param FieldInterface $innerField
  */
 public function __construct(FieldInterface $innerField, array $options = array())
 {
     $this->prototype = $innerField;
     parent::__construct($innerField->getKey(), $options);
 }
Example #3
0
 /**
  * Adds a new field to this group. A field must have a unique name within
  * the group. Otherwise the existing field is overwritten.
  *
  * If you add a nested group, this group should also be represented in the
  * object hierarchy. If you want to add a group that operates on the same
  * hierarchy level, use merge().
  *
  * <code>
  * class Entity
  * {
  *   public $location;
  * }
  *
  * class Location
  * {
  *   public $longitude;
  *   public $latitude;
  * }
  *
  * $entity = new Entity();
  * $entity->location = new Location();
  *
  * $form = new Form('entity', $entity, $validator);
  *
  * $locationGroup = new FieldGroup('location');
  * $locationGroup->add(new TextField('longitude'));
  * $locationGroup->add(new TextField('latitude'));
  *
  * $form->add($locationGroup);
  * </code>
  *
  * @param FieldInterface $field
  */
 public function add(FieldInterface $field)
 {
     if ($this->isBound()) {
         throw new AlreadyBoundException('You cannot add fields after binding a form');
     }
     $this->fields[$field->getKey()] = $field;
     $field->setParent($this);
     $field->setLocale($this->locale);
     $field->setGenerator($this->generator);
     if ($this->translator !== null) {
         $field->setTranslator($this->translator);
     }
     $data = $this->getTransformedData();
     // if the property "data" is NULL, getTransformedData() returns an empty
     // string
     if (!empty($data) && $field->getPropertyPath() !== null) {
         $field->updateFromObject($data);
     }
     return $field;
 }