示例#1
0
 /**
  * Erstellt aus dem Request und dem FormPanel ein Set mit allen FormularDaten
  *
  * man könnte sich hier auch mal vorstellen die formulardaten im set aufzusplitten
  * Sicherheit: alle Felder die nicht registriert sind durch Componenten oder den Formpanel (getControlFields) schmeissen hier eine Exception
  */
 public function createFormDataSet(FormData $requestData, EntityFormPanel $panel, Entity $entity)
 {
     $meta = $entity->getSetMeta();
     // wir müssen die Spezial-Felder vom EntityFormPanel hier tracken
     foreach ($panel->getControlFields() as $field) {
         $meta->setFieldType($field, Type::create('String'));
     }
     // sonderfeld disabled wird ignored
     $meta->setFieldType('disabled', Type::create('Array'));
     try {
         $set = new Set((array) $requestData, $meta);
     } catch (\Psc\Data\FieldNotDefinedException $e) {
         throw \Psc\Exception::create("In den FormularDaten befindet sich ein Feld '%s', welches kein Feld aus Entity getSetMeta ist (%s).", implode('.', $e->field), implode(', ', $e->avaibleFields));
     }
     return $set;
 }