Symfony2:日期时间和表单验证



我需要知道通过表单处理日期时间的通常方法。

我的实体中有一个属性,比如

/**
 * @var DateTime
 *
 * @ORMColumn(name="founded", type="datetime", nullable=true)
 */
private $founded;

然后我通过FormTypes

呈现表单
->add('founded', 'date', array('widget' => 'single_text', 'format' => 'dd.MM.yyyy'))

用户然后输入一个字符串,如01.01.1892然后通过ajax发送给服务器:

form_team[basicdata][founded]:01.01.1914

在控制器中,我处理数据并验证它:

$form = $this->createForm(new TeamsType(), $team);
$form->submit($this->getRequest()->request->get($form->getName()));
if ($form->isValid()) {
...

问题是,验证总是失败:This value is not valid。我猜一个datetime对象是预期的,但客户端只是提供了一个字符串。

这个工作流应该如何工作?

@Benjamin Lazarecki是正确的

您需要将字符串数据(来自表单内)转换为DateTime对象。但是,这个转换器已经在这里实现了:

http://api.symfony.com/master/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.html

所以,你可以直接输入'n'播放;)

相关内容

  • 没有找到相关文章

最新更新