我的形式具有3个Entites(Obras,Fechaobra和Horarioobra),具有一对一的关系。一个OBRA可能有许多Fechaobra,一个Fechaobra可能有许多Horarioobra。但是我按照symfony.com/doc/current/corbook/form/form/form_collections.html的形式做出了tha表单,但它给了我这个错误:
Catchable Fatal Error: Argument 1 passed to AcmeReservasBundleEntityFechaObra::setHorariosobra() must implement interface DoctrineCommonCollectionsCollection, array given, called in /var/www/html/grisar/entradas/vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php on line 410 and defined
我已经将horariosobra定义为一个数组汇编,但它一直给我这个错误。
捆绑包的源代码在:github.com/javiermarcon/tickets/tree/master/src/src/acme/reservasbundle
有人知道为什么给我这个错误吗?谢谢
从setter方法中删除强大的键入 DoctrineCommonCollectionsCollection
:
public function setHorariosobra($horariosobra)
{
// Be sure to "use" ArrayCollection class
$this->horariosobra = new ArrayCollection($horariosobra);
foreach ($horariosobra as $horarioobra) {
$horarioobra->setObra($this);
}
}
应该解决问题。请记住,Forms
组件不必知道Doctrine
- 完全由您执行对实体的使用。因此,提交给Setter方法的数据是通用数组,而不是Doctrine
的Collection