从TimeType输入中设置模型中的DateTime

时间:2018-02-16 16:48:35

标签: php symfony doctrine

我正在做一个symfony 4项目,我遇到了一个小问题

我有一个代表商店日程表的DateTime值很少的模型

我想让管理员自己更改,所以我做了一个能够改变的表格。

        $formBuilder->add($schedule->getDay().'_openAm', TimeType::class,
            array(
                'label' => $this->getDayWithNumber($schedule->getDay()),
                'input'  => 'datetime', 
                'widget' => 'choice', 
                'data' => $schedule->getSlotClosePM()
            )
        );

但是当我想在模型中设置它时

  $schedule->setSlotOpenAM($form->get($scheduleDay."_openAm"));

程序崩溃......

所以我试着这样做

   $schedule->setSlotOpenAM(new \DateTime($form->get($scheduleDay."_openAm")));

我还尝试从表单中打印值,但它总是崩溃......

我用try和catch(\ Exception $ e)包围了我的全部内容,我打印了一个小句子和$ e-> getMessage(),但getMessage和getTraceAsString也崩溃了......

当我试图了解哪种异常PHP check thrown exception type时,$ e-> getCode返回一个空字符串并且get_class或getClass崩溃。

你能告诉我如何将我的TimeType转换为DateTime,或者如何在这种输入中获取数据?

我搜索了文件https://symfony.com/doc/current/reference/forms/types/time.html

但他们只是说如何以一种形式添加它而不是在我们取回它时如何使用它

谢谢!

1 个答案:

答案 0 :(得分:0)

最终解决方案非常简单:D!

    $schedule->setSlotOpenAM($form->get($scheduleDay."_openAm")->getData());

返回dateTime值