我不确定这是否是标准方式,而且我个人不喜欢它..但可以这样做:
在流体中用于新/编辑操作:
<f:form action="create" objectName="girlfriend">
...
<f:form.textfield property="birthDate" placeholder="1991-12-30 - 18:25:58" value="{newGirlfriend.birthDate->f:format.date(format:'Y-m-d - H:i:s')}" />
...
</f:form>
在您的控制器中,您可以为 \DateTime 添加 initialize*Action 和更新propertyMappingConfiguration如果标准对您不利(必须为创建和更新操作完成):
public function initializeCreateAction() {
$mappingConfig = $this->arguments['girlfriend']->getPropertyMappingConfiguration();
$mappingConfig->forProperty('birthDate')->setTypeConverterOption(
'TYPO3\Flow\Property\TypeConverter\DateTimeConverter',
\TYPO3\Flow\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT,
'Y-m-d - H:i:s'
);
}
有时不将对象直接传递给控制器而是在服务层上创建它更容易。您还可以查看 TypeConverters - 它们不需要 initializeActions,您可以轻松覆盖现有的设置更高优先级的..