也许我错过了一些简单的事情?但是我有一个基于实体的CRUD表单,并且一切似乎都正常。可以创建,编辑和更新对象。但是,当我在datetime字段上更改默认的窗口小部件样式时,日期数据不再填充到编辑表单中,而是显示日期格式字符串“ dd / mm / yyyy”。
这里有明显的错误吗?
在实体中,属性为:
/**
* @ORM\Column(type="date", nullable=true)
*/
private $createdDate;
字母和二传手:
public function getCreatedDate(): ?\DateTimeInterface
{
return $this->createdDate;
}
public function setCreatedDate(?\DateTimeInterface $createdDate): self
{
$this->createdDate = $createdDate;
return $this;
}
在表单构建器中:
->add('createdDate', DateType::class, [
'widget' => 'single_text',
'required' => false,
])
生成的HTML:
<div>
<label for="hmr_core_createdDate" class="required">Created date</label>
<input type="date" id="hmr_core_createdDate"
name="hmr_core[createdDate]"
required="required">
</div>
请求属性中的CreatedDate:
-createdDate: DateTime @1551092357 {#975 ▼
date: 2019-02-25 21:29:17.0 Australia/Melbourne (+11:00)
调试输出:
是否添加格式等选项似乎无关紧要。删除小部件行或将其设置为选择后,一切都会正常工作。
有什么想法吗?
答案 0 :(得分:0)
好,我修复了它。某种程度上,实体对象已被删除,无法从控制器中作为参数传递,对于三个下拉小部件,我不确定它是如何接收数据的,但确实如此。