微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sulu:实体没有字段或关联错误

如何解决Sulu:实体没有字段或关联错误

在这里遵循 Sulu 示例:https://github.com/sulu/sulu-workshop/ 尝试为自定义实体类型设置翻译。

我的实体文件具有字段“home_team”的吸气剂,定义如下:

/**
 * @Serializer\VirtualProperty(name="home_team")
 */
public function getHomeTeam(): ?string
{
    $translation = $this->getTranslation($this->locale);
    if (!$translation) {
        return null;
    }
    return $translation->getHomeTeam();
}

因此字段实际上不是该实体的一部分,而是它的翻译实体,因为它假定是可翻译的。

当我尝试创建该实体类型的新对象时,它运行良好。我可以在数据库中看到字段值存储得很好,我没有收到任何错误

但是在概览页面而不是所有对象的列表上我得到错误

[语义错误] 第 0 行,'home_team AS' 附近的第 73 列:错误:App\Entity\MatchEvent 类没有名为 home_team 的字段或关联

知道这里有什么问题吗?

解决方法

如果您想在 listView 中看到翻译,您必须创建一个真正的 translationEntity,就像在研讨会项目中一样。在 this post 中已经解释了如何正确翻译自定义实体。

如果您已经创建了 translationEntity,则必须通过联接配置翻译与主实体的关系。 Here 是研讨会中此配置的示例。

Sulu 使用优化查询直接从数据库创建列表对象。因此,出于性能原因,实体本身不会被水合或序列化。因此您的 virtualProperty 永远不会被执行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。