上下文:
我用symfony 3创建了一个项目。我的数据库有一个带有字段日期时间的表
使用此命令,我为一个表创建一个简单的 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 完成了,但是当我编辑一行时会抛出错误
无法加载类型"日期时间"500 内部服务器错误 - InvalidArgumentException
堆栈跟踪
in vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php at line 87
我认为无法加载类型"datetme",我尝试在我的 services.yml 的服务部分中注册我的表单,但我不知道该怎么做? 对于类型日期时间。
知道吗?提前谢谢。
似乎是
CRUD 生成器中的一个错误。它使用类型别名而不是完全限定的类名:
$builder->add('fieldName', 'textarea');
从Symfony 3.0开始,完全限定的类名是必需的:
$builder->add('fieldName', DateTimeType::class);
请检查生成的表单类型。
>谢尔盖,谢谢你指出这一点。我不确定为什么,但是指定完全限定的类名并没有解决我的问题。一起删除日期时间别名确实如此。
改变:
$builder
->add('name')
->add('time', 'datetime')
->add('location')
;
自:
$builder
->add('name')
->add('time')
->add('location')
;
symfony 3.0v菲律宾比索 5.6V
Symfony''Component''Form''Extension''Core''Type''DateTimeType;
->add('perfecnacimiento', DateTimeType::class)