我创建了一个处理对象person的简单表单,该对象拥有 datetime 类型的属性birthDate。
现在我想创建一个人并存储此属性,但是如果我尝试提交表单,则会出现以下错误:
日期“%s”未被识别(对于格式“%s”)
我已经阅读了一些线程,其中很多建议使用初始化操作来处理这个问题,但这对我不起作用。
人:
class Person extends AbstractEntity
{
...
/**
* Stores the birth date of a person
*
* @var \DateTime
* @validate NotEmpty, DateTime
*
*/
protected $birthDate = null;
...
}
体液:
<f:form action="send" method="post" enctype="multipart/form-data" name="person" object="{person}">
...
<fieldset>
<f:render partial="FormErrors" arguments="{field: 'person.birthDate'}" />
<label class="required">Birthdate</label>
<f:form.textfield
type="date"
placeholder="dd.mm.yyyy"
property="birthDate"
/>
</fieldset>
...
</f:form>
我的初始化操作如下所示:
public function initializeSendAction()
{
if (isset($this->arguments['person'])) {
$this->arguments['person']->getPropertyMappingConfiguration()->forProperty('birthDate')->setTypeConverterOption(
'TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\DateTimeConverter',
\TYPO3\CMS\Extbase\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT,
'd.m.Y'
);
}
}
发送操作如下所示:
public function sendAction(\Fox\Example\Domain\Model\Person $person)
{
$this->personRepository->add($person);
...
}
所以没有什么特别的,但似乎我的自定义日期时间格式“dmY”不起作用,并且属性是字符串类型,有什么建议吗?