存在关系时无法更新实体

时间:2014-12-09 07:04:18

标签: php symfony doctrine-orm

我有一个实体代表我系统中的用户,每个用户都链接到一个评论实体(一对多),我最近添加了评论实体,现在我注意到当我更新用户实体和用户有评论我收到错误,而用户仍然没有评论一切正常。我只需要相关实体来获取评论数量,我已经尝试了一些方法,但似乎没有任何工作。

  

[2014-12-08 23:31:19] request.CRITICAL:未捕获的PHP Exception Symfony \ Component \ Form \ Exception \ StringCastException:" A" __ toString()"在" FFS2013 \ CommentBundle \ Entity \ Comment"的类型的对象上找不到方法。传递到选择字段。要改为读取自定义getter,请设置选项" property"到了理想的物业道路。" at /Users/matan/www/FFS2013/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Form/ChoiceList/EntityChoiceList.php第432行{"例外":" [对象] (Symfony \ Component \ Form \ Exception \ StringCastException:在\" FFS2013 \ CommentBundle \ Entity \ Comment \&#34类型的对象上找不到A \" __ toString()\"方法;传递到选择字段。要读取自定义getter,请将选项\" property \"设置为所需的属性路径。

我知道它说他试图寻找__toString方法,但我不认为这是我真正的问题。 这是在用户实体上配置关系的方式:

@ORM\OneToMany(targetEntity="FFS2013\CommentBundle\Entity\Comment", mappedBy="user", fetch="EXTRA_LAZY")

如何在用户实体上配置count属性,并在更新实体时忽略它?

1 个答案:

答案 0 :(得分:2)

您已在表单中添加了注释关系作为选项字段,因此您应该在Comment类中实现方法__toString以在选择字段中显示注释(对象被转换为字符串,因此它必须具有方法__toString)。或者使用另一个用于在选择小部件中显示的字段设置属性选项(在表单构建器中)。