【问题标题】:Symfony2 can't get date widget to workSymfony2 无法让日期小部件工作
【发布时间】:2012-01-23 22:02:14
【问题描述】:

我有一个带有生日列的用户对象:

/**
 * Birthday
 * 
 * @ORM\Column(type="date", nullable=true)
 */
protected $birthday;

在注册表中,我添加了生日小部件,如下所示:

->add('birthday', 'birthday')

但是当我发送表单时,我收到了该字段的This value is not valid 错误。 我尝试了一些替代方案,但都没有奏效:

->add('birthday', 'date')
->add('birthday', 'date', array('input' => 'string'))

有人有解决办法吗?

【问题讨论】:

  • 你输入了什么来得到这样的信息?您是否尝试过使用format 选项?
  • 小部件是“选择”小部件,所以我只保留 3 个下拉框的默认值(2007 年 1 月 1 日)。我还尝试使用 format 选项 - 没有用。另外,我什至没有对该字段的约束,那么是什么引发了该错误?
  • 你不需要设置约束,因为你使用的是 DateType 类型,symfony 知道你应该提供一个日期。而且我认为format 选项必须与默认小部件不兼容。

标签: forms symfony doctrine-orm


【解决方案1】:

愚蠢的错误..!!

我在 php.ini 中的时区设置无效,导致日期转换器抛出异常

【讨论】:

    【解决方案2】:

    如果您想将字符串作为输入插入到日期字段中,您应该使用选项:'widget' => 'single_text'

    $builder->add('date_created', 'date', array(
        'widget' => 'single_text',
        'format' => 'YYYY-MM-dd',
    ));
    

    【讨论】:

    • 但我没有,我想使用“选择”小部件样式,它不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2013-03-08
    • 2021-11-17
    相关资源
    最近更新 更多