Zum Inhalt springen

Verwendug Float-Typeconverter

Erstellt am 15. Mai 2013 · 1 Antwort · letzte Antwort am 16. Mai 2013

Tags: Frage

wiming ·

Hallo,

wie kann ich einen Float-Typeconverter für alle Properties eines Objekts in Flow setzen? Ich habe ein Formular mit vielen Float-Inputs und möchte, dass die Eingabe in der aktuellen Locale möglich ist. Also z.B mit "," als Dezimalseparator.
Wenn ich den Converter für jedes Propertie einzeln setzte mit "..->forProperty('xy').."

/**
 * @return void
 */
public function initializeUpdateAction() {
   $this->arguments['album']->getPropertyMappingConfiguration()->forProperty['amount']->setTypeConverterOption(
               'TYPO3\Flow\Property\TypeConverter\FloatConverter', 'locale', TRUE
       ); 
   }

dann klappt es.

Wenn ich aber folgendes versuche ohne ->forProperty('xy'):

/**
 * @return void
 */
public function initializeUpdateAction() {
   $this->arguments['album']->getPropertyMappingConfiguration()->setTypeConverterOption(
               'TYPO3\Flow\Property\TypeConverter\FloatConverter', 'locale', TRUE
       ); 
   }

dann kommt z.B:

"9,12" cannot be converted to a float value.

Übrigens - wie kann ich die Ausgabe dieser Fehlermeldung in deutscher Sprache erreichen? Die Meldung ist hardcoded im TypeConverter. Ich verwende FLow 2.0 dev-master.

thx

wiming ·

Ich hab die Lösung! Für alle Properties muss man ein * setzen also:

$this->arguments['album']->getPropertyMappingConfiguration()->forProperty('*')->setTypeConverterOption(
'TYPO3\Flow\Property\TypeConverter\FloatConverter', 'locale', TRUE
);