在typo3流程中从流体获取/设置日期时间的标准方法是什么?

时间:2014-11-19 17:07:52

标签: datetime fluid typo3-flow

在typo3流程中获取/设置日期时间的标准方法是什么?

是否有可编辑的html字段 - 像基本的f:form.textfield一样 - 将允许输入,编辑和保留日期时间?

我知道我可以用例如显示日期时间      <f:format.date format="d.m.Y - H:i:s">{productArticle.classdate}</f:format.date> 但在这种情况下,该值为null无显示任何内容,无论如何都不能进入。在某些版本中,属性是否与f:format.date一起使用?我得到了#34;财产没有注册&#34;我试试的时候。

或者我需要在我的页面上有两个字段,一个用于日期,一个用于时间,我在Action中放在一起?

由于

1 个答案:

答案 0 :(得分:4)

我不确定它是否是标准方式,而且我个人不喜欢它......但它可以这样做:

在Fluid中用于新建/编辑操作:

<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添加初始化*操作和更新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,您可以轻松覆盖设置更高优先级的现有..