Symfony-找不到类型的Twig实体

时间:2018-08-24 08:25:12

标签: symfony

我使用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中捕获此错误?

1 个答案:

答案 0 :(得分:2)

您的数据库中数据可能不一致。该错误显示以下内容:

  

在品牌表记录中有一个标语的ID(为27)。然而,   口号表中没有ID为27的记录。

解决方案:在品牌表中,将外键的口号从27更改为NULL。在这种情况下,您可以签入模板:

{% if agency.brand.slogan %}