问题
Doctrine 在找不到相关实体时抛出此异常。这么说似乎是多余的,但实际上这很重要。
这意味着它可以找到与之相关的ID,但提出的请求原则与任何结果都不匹配。
我的猜测是您的数据库表(实际上是链接表)submission.authors
包含的 ID0
不是NULL
.
这样,Doctrine 认为有一个ID为 的作者0
,因此找不到它。
发生什么了
submission.authors
一直存在。它是一个未初始化的Doctrine 代理。
var_dump($submission->getAuthors());
将向您显示确切包含的内容submission.authors
此时,不进行任何查询。它只是将PersistentCollection
带有标志的a返回isInitialized
为false。
当您尝试从中获取属性时会发生异常
foreach ($submission->getAuthors() as $author) {
}
当做这个学说时会检查是否getAuthors
被初始化。如果没有,它将运行以下查询
SELECT <stuffs> FROM authors WHERE id = 0;
哪个返回不匹配并将抛出EntityNotFound
异常
使固定
您必须将 id 行的默认值设置为NULL
并进行查询以将所有0
's 更新为NULL
。
有了这个,您可以轻松地submission.authors
测试is not null
如果 Doctrine 找到一个NULL