Symfony /表单类型-不以single_text小部件样式填充日期时间的编辑表单数据

时间:2019-02-26 03:05:24

标签: forms symfony datetime format widget

也许我错过了一些简单的事情?但是我有一个基于实体的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)

调试输出:

debug1 debug2

是否添加格式等选项似乎无关紧要。删除小部件行或将其设置为选择后,一切都会正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好,我修复了它。某种程度上,实体对象已被删除,无法从控制器中作为参数传递,对于三个下拉小部件,我不确定它是如何接收数据的,但确实如此。