ValidateNumber 本地化 i Flow

ValidateNumber localization i Flow

我用对了吗?对于浮点值。 12,12 被拒绝,12.12 没有。我希望相反的情况成立。

@Flow\Validate(type="Number", options={ "locale"="de_DE" })

参考here(但没有使用示例><)

实际上验证为时已晚。您想要的是将字符串 12,12 映射到浮点值 12.12。这是在验证之前。所以你需要配置PropertyMapper。请参阅 \TYPO3\Flow\Property\TypeConverter\FloatConverter 中相当广泛的评论。

您大致需要的是:

protected function initializeCreateAction() {
    $this->arguments['newBid']->getPropertyMappingConfiguration()->
        forProperty('yourPropertyThatShouldBeFloat')->
        setTypeConverterOption('TYPO3\Flow\Property\TypeConverter\FloatConverter', 'locale', 'de');
}

对于将 12,1212.12 两种格式都接受为 float 12.12 的附加问题,您可能需要编写自己的 FloatConverter 来检查是否存在逗号并执行其中任一操作两次转化中的。