【发布时间】:2018-07-27 15:13:05
【问题描述】:
我正在做一个 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 and 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
但他们只是说如何在表单中添加它,而不是在我们取回它时如何使用它
谢谢!
【问题讨论】:
-
您已经使用
input选项为您的数据指定了正确的格式。也许错误出在其他地方?您返回的错误消息和堆栈跟踪到底是什么? -
我用ajax调用表单,我看不出是哪个错误,我试图用try and catch包围它崩溃的地方,但找不到异常:(
-
我也尝试使用 getType 来观察表单输入是否发生变化,但它会回答我的对象,所以我想我得到了一件好事,但我知道为什么我崩溃了