Symfony2 - 没有为约束配置默认选项

时间:2013-10-07 20:20:11

标签: php forms symfony

我正在关注Symfony2的教程。 我正在用表格做项目。

第12章:表格| 150

我的代码:

    public function newAction(Request $request)
    {
   $task = new Task();
   $task->setTask('Find EiM group');
   $task->setDueDate(new DateTime('tomorrow'));

   $form = $this->createFormBuilder($task)
      ->add('task', 'text')
      ->add('dueDate', 'date')
      ->add('save', 'submit')
      ->getForm();

   return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
       'form' => $form->createView()));
    }

我从主题中收到错误。

No default option is configured for constraint Symfony\Component\Validator\Constraints\DateTime

它可以是什么? 怎么解决? 我严格遵循书中的例子。

2 个答案:

答案 0 :(得分:29)

此:

$task->setDueDate(new DateTime('tomorrow'));

应该是:

$task->setDueDate(new \DateTime('tomorrow'));

注意Datetime之前的正斜杠。检查您的“use”语句,您可能已导入并使用类'Symfony \ Component \ Validator \ Constraints \ DateTime“

答案 1 :(得分:1)

http://symfony.com/doc/current/reference/forms/types/date.html

我不确定,但在此文档之后,基本用法是:

$builder->add('publishedAt', 'date', array(
    'input'  => 'datetime',
    'widget' => 'choice',
));

$builder->add('publishedAt', 'date', array(
    'input'  => 'timestamp',
    'widget' => 'choice',
));

也许你应该尝试在

之后插入选项数组
  

'日期'