如何删除doctrine odm对象中的引用

时间:2015-12-21 20:22:59

标签: mongodb symfony doctrine-orm

问题是这样的,我有两个文件"学生"和#34;学校",在学生中,有一个对学校的现场参考:

/**
 * @MongoDB\ReferenceOne(targetDocument="school")
 */
protected $school;

并且有一个学生对象,其中学校领域引用了一个学校对象,我想删除这个参考,在学说文档odm documentation中说我可以做$ student-> setSchool(null),但是当我这样做时出现错误

  

捕获致命错误:传递给Student :: setSchool()的参数1必须是School的一个实例,null给定,

任何人都有任何想法?我误解了文档还是这是另一种情况?谢谢!

1 个答案:

答案 0 :(得分:0)

正如我的评论中所述,为了存储可以为空的值, 通常要求字段接受null作为值以及传递给setter方法的参数(如果已添加)接受null。随着@OP的增加,对于ODM文档,还有其他需要考虑的事项:

  

nullable - 默认情况下,如果PHP值为null,ODM将取消设置MongoDB中的字段。为此选项指定true以强制ODM在数据库中存储空值,而不是取消设置字段。

文档提供的引用参考 - @Field