当我尝试在Twig中显示相关对象,并且由于ID在父实体中而不存在该关系,但相关实体不在当前数据库中时,Symfony会抛出500错误
// EntityNotFoundException Twig_Error_Runtime 在呈现模板期间抛出了异常 ("类型实体' App \ Entity \ Location'对于ID id(265)不是 发现"。)
我希望能够忽略此错误,而是显示类似"缺少相关对象"。
似乎可以通过Twig中的某些检查来解决这个问题,但是检查关系是否为空或未定义也不起作用 - 它们仍然找到关系,但是当在相关实体上调用属性时,异常扔了。
有没有人解决过这个问题?
答案 0 :(得分:3)
您可以检查实体是否存在于Twig扩展名
中类似的东西:
public function isRelatedEntityDefined($entity)
{
try {
if(isset($entity->getSomeField()) return true;
} catch (EntityNotFoundException $e) {
return false;
}
}
答案 1 :(得分:0)
看看这个主题 On delete cascade with doctrine2
您的注释不是问题吗?
在你自己的一面,ID仍然被定义,但实体不再存在。
你应该这样做:
* @JoinColumn(name="locationId", referencedColumnName="id", onDelete="set null")