Symfony - 找不到类型的 Twig 实体



我使用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;
}
}

并用我的树枝进行测试:

if agency.brand.haveSlogan

但它总是返回真实。

如何在 Twig 中捕获此错误?

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

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

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

{% if agency.brand.slogan %}

最新更新