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 永远不会被执行。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...