【问题标题】:Silex : how to set the value of a datetime input in the widgetSilex:如何在小部件中设置日期时间输入的值
【发布时间】:2015-12-01 10:02:54
【问题描述】:

我使用 FormBuilderInterface 在 Silex 上构建了一个带有日期时间输入的表单。验证工作完美,但是当加载数据以重建表单并填写输入值时,日期时间保持为空。我一直在做一些研究,但到目前为止还没有,所以我在这里。

表单构建在一个名为 EventType 的类中,并填充一个 Event 对象。 $dateOfEvent 属性的 setter 请求一个 \DateTime 对象,getter 返回 $dateOfEvent 而不对其进行格式化。

EventType 的构建器的事件日期部分如下所示:

->add('dateOfEvent', 'datetime', array(
                'label' => 'Date of the event',
                'widget' => 'single_text',
                'input' => 'datetime',
                ))

如果 Event 对象已经被填满,除了文件输入(正常)和日期时间输入(不正常)之外,所有输入的表单值都被填满。

这是a screen 的样子。

【问题讨论】:

  • 提交日期的类型是什么
  • 这是一个 DateTime 对象。它是使用 JS 插件 bootstrap-datetimepicker 填充的,但我认为它不会改变任何东西。

标签: php symfony datetime silex formbuilder


【解决方案1】:

你应该修正表单字段的名称,它应该匹配属性的:

->add('event', 'datetime', array(
            'label' => 'Date of the event',
            'widget' => 'single_text',
            'input' => 'datetime',
            ))

【讨论】:

  • 实际上,我的问题是我想用事件的事件日期属性填充值。我不是特别想设置默认值。
  • 那么你应该修复表单字段的名称,它应该与属性匹配!
  • 不幸的是,它已经做到了。该属性称为 $dateOfEvent。
  • 它有一个getter和一个setter?
  • 确实如此。 setter 请求一个 \DateTime 对象。
猜你喜欢
  • 2018-07-23
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
相关资源
最近更新 更多