Symfony crud edict:无法加载类型“datetime”

时间:2016-01-21 17:03:36

标签: php datetime symfony

上下文

我使用symfony创建一个项目3.我的数据库有一个表格,其中包含 datetime

字段

使用此命令,我为一个表

创建一个简单的CRUD应用程序
php bin/console doctrine:mapping:import --force adminBundle xml

php bin/console doctrine:mapping:convert annotation ./src

php bin/console doctrine:generate:entities adminBundle

php bin/console generate:doctrine:crud

错误:

所以我的crud已经完成,但是当我编辑一行时会抛出错误

  

无法加载类型“datetime”500内部服务器错误 -   InvalidArgumentException

堆栈跟踪

  in vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php at line 87

我认为无法加载类型“datetme”,我尝试在我的services.yml的部分服务中注册我的表单,但我不知道怎么做?对于日期时间类型。

有什么想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:22)

看起来像CRUD生成器中的错误。它使用类型别名而不是完全限定的类名:

$builder->add('fieldName', 'textarea');

从Symfony 3.0开始,需要完全限定的类名:

$builder->add('fieldName', DateTimeType::class);

请检查生成的表单类型。

答案 1 :(得分:2)

谢谢,谢谢你指出了这一点。我不确定原因,但指定完全合格的班级名称并没有解决我的问题。一起删除日期时间别名。

<强>更改:

$builder
  ->add('name')
  ->add('time', 'datetime')
  ->add('location')
;

$builder
  ->add('name')
  ->add('time')
  ->add('location')
;

答案 2 :(得分:-1)

symfony 3.0v php 5.6v

  

的Symfony \元器件\表格\扩展\核心\型号\ DateTimeType;

     

- &gt; add(&#39; perfecnacimiento&#39;,DateTimeType :: class)