【发布时间】:2012-12-08 23:09:13
【问题描述】:
我正在使用 Symfony 2.1.3-DEV 并尝试完成将实体转换为字符串(某种 ID),然后在提交表单时从字符串返回到实体。如果我使用说明书中给出的变压器,问题是一样的: http://symfony.com/doc/master/cookbook/form/data_transformers.html
控制器代码:
$task = $entityManager->find('AcmeTaskBundle:Task', $id);
$form = $this->createForm(new TaskType(), $task); // so $task->issue is Issue object
我收到此错误:
表单的视图数据应该是类的一个实例 Acme\TaskBundle\Entity\Issue,但是是一个(n)字符串。你可以避免这种情况 将“data_class”选项设置为 null 或添加视图时出错 将 a(n) 字符串转换为 Acme\TaskBundle\Entity\Issue。
问题是,我已经有一个转换器,可以转换 TO 字符串。
来自Form.php:
if (null !== $dataClass && !$viewData instanceof $dataClass) {
throw new FormException(
//...
);
}
为什么$viewData 被检查为data_class 参数的实例(或给定对象的猜测类型)?视图数据不应该是字符串/数组等吗?我错过了什么吗?
【问题讨论】:
-
您能告诉我们您的表单类型吗?帮助你会更容易!
标签: symfony symfony-2.1 symfony-forms