Symfony形式 - 类型"字符串"," DateTime"的预期参数;特定

时间:2014-03-18 10:48:11

标签: php forms validation symfony datetime

我收到此错误消息: “类型”字符串“的预期参数,”DateTime“给出”

这是我在symfony

中的表单代码
$builder->add('dateOfBirth', 'datetime', [
    'widget' => 'single_text',
    'label'  => 'Geboortedatum',
    'attr' => ['class' => 'form-control birthdaypicker'],
    'label_attr' => ['class' => 'col-sm-2 control-label']
]);

这是模板:

<div class="form-group">
    {{ form_label(form_pupil.dateOfBirth) }}
    <div class="col-sm-10">
        {{ form_widget(form_pupil.dateOfBirth) }}
        <small>{{ form_errors(form_pupil.dateOfBirth) }}</small>
    </div>
</div>

文件(实体)

/**
 * @MongoDB\Date
 * @Assert\NotBlank(message="Een geboortedatum is vereist")
 * @Assert\Length(max=10, maxMessage="Een geboortedatum kan maximaal 10 karakters bevatten")
 */
 protected $dateOfBirth;

在我的文档(实体)中,它也是日期类型。我不知道为什么Symfony期望一个字符串..

2 个答案:

答案 0 :(得分:1)

@Assert\Length(max=10, maxMessage="Een geboortedatum kan maximaal 10 karakters bevatten")

无法检查日期时间对象的长度! (删除了这个断言并且有效)

答案 1 :(得分:0)

试试这个:

$builder->add('dateOfBirth', 'datetime', [
    'data' => new \DateTime(),
    'widget' => 'single_text',
    'label'  => 'Geboortedatum',
    'attr' => ['class' => 'form-control birthdaypicker'],
    'label_attr' => ['class' => 'col-sm-2 control-label']
]);