微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – symfony从json数据持久化datetime

你好,我把数据作为 JSON格式,在我的服务器网站上,我必须通过Doctrine存储它们.一切都很顺利,但当我收到日期时间格式数据时,我有验证错误.我在控制器中的分离动作上测试这种情况:

public function indexAction($name)
{

    $em = $this->getDoctrine()->getManager();

    $test = new test();
    $test->setName("Test");
    //$test->setStart(new \DateTime());
    $form = $this->createForm(new TestType(),$test);

    $store = array(
        "name" => "Test","start" => new \DateTime()//will be something like *2014-04-09 11:11:11'
    );

    $form->submit($store);

    if ($form->isValid()) {
        $em->persist($test);
        $em->flush();
    } else var_dump($this->getErrorMessages($form));


    return $this->render('CodeTestBundle:Default:index.html.twig',array('name' => $name));
}

var dump是:

array (size=1) ‘start’ =>
array (size=3)
0 => string ‘This value is not valid.’ (length=24)

06001

解决方法

您的问题是表单框架期望视图数据由每个日期和时间组件的一个窗口小部件处理,因为日期时间字段类型的认窗口小部件设置是choice.

如果将datetime字段配置为单个文本输入,则验证器将接收一个字符串而不是数组结构,并按预期处理它而不进行任何其他转换.在您的情况下,字段配置如下所示:

$builder->add('start','datetime',array(
    'widget' => 'single_text','input' => 'datetime'
));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐