【发布时间】:2014-03-18 10:48:10
【问题描述】:
我收到此错误消息:
“给定“字符串”类型的预期参数,“日期时间””
这是我在 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 需要一个字符串..
【问题讨论】:
-
您能否发布有关错误消息的更多详细信息?它是来自 Symfony 表单/验证还是来自 Doctrine ODM?
-
vendor/symfony/symfony/src/Symfony/Component/Validator/Constraints/LengthValidator.php 在第 33 行 - } if (!is_scalar($value) && !(is_object($value) && method_exists ($value, '__toString'))) { throw new UnexpectedTypeException($value, 'string'); } $stringValue = (string) $value;
-
万一有人遇到这个错误,我在validation.yml配置文件中有一个无效的验证规则。
标签: php symfony datetime symfony-forms symfony-validator