我使用Symfony 4.1,但出现一个简单错误。
我在实体(ManyToOne)中有一个关联,但是现在我的表中有一个没有关联的ID。
在我的树枝模板中:
{{ agency.brand.id and agency.brand.slogan.id ? agency.brand.slogan.title : '' }}
我的问题是特定品牌的口号不存在。
所以我得到这个错误:
在渲染模板期间引发了异常 (“ ID为expId(27)的类型为'App \ Entity \ Slogan'的实体类型不是 找到”)。
我尝试了一切在Twig中测试该关系是否存在,但每次都会收到错误消息。
这很奇怪,因为:
agency.brand.slogan.id // return 27
agency.brand.slogan.title // generate error
我尝试将其添加到我的品牌实体中:
public function haveSlogan()
{
try {
if($this->getSlogan()) {
return true;
}
} catch (EntityNotFoundException $e) {
return false;
}
}
并在我的Twig中进行测试:
if agency.brand.haveSlogan
但是它始终会返回true。
如何在Twig中捕获此错误?
答案 0 :(得分:2)
您的数据库中数据可能不一致。该错误显示以下内容:
在品牌表记录中有一个标语的ID(为27)。然而, 口号表中没有ID为27的记录。
解决方案:在品牌表中,将外键的口号从27更改为NULL。在这种情况下,您可以签入模板:
{% if agency.brand.slogan %}