【发布时间】:2015-12-22 05:39:07
【问题描述】:
问题是这样的,我有两个文件“学生”和“学校”,在学生中,有一个对学校的字段引用:
/**
* @MongoDB\ReferenceOne(targetDocument="school")
*/
protected $school;
并且有一个学生对象,其中学校字段引用了一个学校对象,我想删除这个引用,在教义odm documentation 的文档中说我可以只做 $student->setSchool(null),但是当我这样做时,我得到了一个错误
可捕获的致命错误:传递给 Student::setSchool() 的参数 1 必须是 School 的实例,给定 null,
有人知道吗?我误解了文档还是这是另一种情况?谢谢!
【问题讨论】:
-
如果您的 setter 方法接受
null作为参数,例如setSchool(School $school = null)并且您的外键列也可以为空,则设置null将起作用。跨度> -
@Artamiel 谢谢!这很好地解决了我的问题,如果这是一个答案,我会接受。但是,文档中提到了可空性:“为此选项指定 true 以强制 ODM 在数据库中存储空值而不是取消设置字段。”,我的意图是取消设置字段,所以我就离开它是默认的
-
是的,你也有道理,因为我对
ORM的经验最多,而不是ODM,所以往往会有一些差异。我可以将我的评论与您的评论合并为一个答案。
标签: mongodb symfony doctrine-orm