【问题标题】:Sulu: Entity has no field or association errorSulu:实体没有字段或关联错误
【发布时间】:2021-06-01 10:11:12
【问题描述】:

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

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

/**
 * @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 的字段或关联

知道这里有什么问题吗?

【问题讨论】:

    标签: entity sulu


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      相关资源
      最近更新 更多