0

我有以下内容:

formFactory->create(FormType::class);
$form->submit(['startDate' => new \DateTime('2020-01-01')]);

注意:如果我使用'startDate' => '2020-01-01',那么它可以工作。在 FormType 我有以下内容:

$builder->add('startDate', DateType::class, [
    'widget' => 'single_text',
    'format' => 'yyyy-MM-dd',
]);

配置选项如下:

public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Event::class
        ]);
    }

在事件实体中,我有一个这样的字段:

/**
     * @var \DateTime
     * @ODM\Field(type="date")
     * @Assert\NotBlank()
     */
    private $startDate;

然而我一直收到这个错误,不知道为什么?

"startDate":["This value is not valid."]

我有 Symfony 4.4.10。

4

1 回答 1

1

如果您尝试预设数据,submit则该工具是错误的工作。它的字面意思是处理标准化形式的提交(具有标量值和数组的数组)。而是使用第二个参数FormFactory::create来预设数据:

$event = new Event();
$event->setStartDate(new \DateTime('2020-01-01'));
$form = $formFactory->create(FormType::class, $event);
于 2020-07-15T13:18:23.567 回答