【问题标题】:Define date steps in a form or property在表单或属性中定义日期步长
【发布时间】:2014-03-21 10:56:13
【问题描述】:

我定义了一个使用Datetime 类型的属性:

class myClass
{

/**
 * @Constraints\NotNull
 * @ORM\Column(type="datetime")
 */
private $date;
...
}

我在表单中添加了这个属性:

        $form = $this->createFormBuilder($myClassObject)
            ->add('date')
            ->getForm(); 
        return $this->render('myTemplate', array('detailsForm', $form->createView());

而且这个表格在myTemplate里面使用:

        <form method="post">
            {{ form_widget(detailsForm) }}
            <input type="submit" value="Create">
        </form>

但我想以 5 分钟的步长显示时间:

00 - 05 - 10 - ... - 50 - 55

有没有办法将其定义为属性约束或字段的表单定义?

【问题讨论】:

  • 您只想要时间还是日期和时间?
  • @n.1 - 只需几分钟。
  • 但是你的变量被命名为date?
  • @n.1 - 如您所见,我的属性名为 date
  • 将其命名为 date 可能会产生误导,因为它不仅是日期,而且是带有分钟和秒数的 Datetime 对象。

标签: forms symfony datetime orm


【解决方案1】:

date 字段类型仅用于日期,因此您必须使用datetime 来显示分钟和秒:

$form = $this->createFormBuilder()
    ->add('date', 'datetime', array(
        'minutes' => range(0, 55, 5)
    ))
    ->getForm();

有趣的部分是minutes 选项,它接受分钟值的数组。此选项适用于 datetimetime 字段类型。

如果您的对象属性仅包含日期,我建议将其命名为 date,否则 datetime 是一个更好的名称。

【讨论】:

  • 谢谢!有用!但是'date' 只是属性的名称,而不是类型。所以我已经完成了:add('date', 'datetime', array('minutes' =&gt; range(0, 55, 5)));
  • 糟糕,谢谢,我会更新我的答案,以便与您的问题完全一致。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
相关资源
最近更新 更多