/** * 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; }