MVC 与请求处理 · 第 10 题,共 12 题

一个表单将字段 startDate 以 "2026-10-15" 的形式发送给 createAction(Conference $conference);该属性是 \DateTime。如何正确映射这个值?

有 1 个正确答案。 中等

显示答案

答案

  • C 在 initializeCreateAction() 中通过参数的属性映射配置设置日期格式(DateTimeConverter::CONFIGURATION_DATE_FORMAT = 'Y-m-d')

解析

在没有额外配置的情况下,DateTimeConverter 期望包含时间的 W3C 格式(例如 2026-10-15T00:00:00+02:00);"2026-10-15" 不匹配,映射会失败。$this->arguments->getArgument('conference')->getPropertyMappingConfiguration()->forProperty('startDate')->setTypeConverterOption(DateTimeConverter::class, DateTimeConverter::CONFIGURATION_DATE_FORMAT, 'Y-m-d') 用于设置格式。TCA 只影响后台,而校验器不会做任何转换。

认证与考试

下一个考试是什么?

已有 19 项考试可以练习,21 项正在投票中。查看所有认证及官方信息,投出你的一票,或推荐你的考试。

查看全部认证