流体变量不再读取 child 值。 (TYPO3 9.5.*)

Fluid variables do not read the child values anymore. (TYPO3 9.5.*)

所以我有一个 table,其中列出了一些约会。这些约会属于一个事件。这里的目标是列出所有约会并获取它们所属事件的信息。

到目前为止一切正常,直到我尝试获取事件的信息。我得到一个 object,看起来像这样:

现在如果我使用这样的东西:{appointment.event.title} 它会返回 NULL

这意味着它不访问属性。 在 TYPO3 v8 中完美运行,但在 TYPO3 v9 中运行不佳。

如果我激活 <f:debug>{appointment}</f:debug> 并使整个 object 得到调试,那么这个 {appointment.event.title} 就可以了!我可以得到标题。

现在的问题是自 TYPO3 8 以来发生了什么变化并且无法再访问这些属性,我如何才能重新获得访问权限?

正在使用:TYPO3 v9

模式:作曲家

此致,

可能以下情况之一为真:

  1. 您忘记为您尝试访问的 属性 添加 getter 方法,并且您混淆了 f:debug 的输出与 实际上 可从对象中获取。调试 ViewHelper 输出也受保护的属性。
  2. 您使用__call__get构建了模型对象,因此您受到https://github.com/TYPO3/Fluid/pull/438的影响,已解决但尚未发布(当前Fluid版本为2.6.0,补丁将包含在下一个版本中)。

您没有说明您使用的是哪个 TYPO3 版本,也没有说明您是否使用 composer,因此很难判断您的 Fluid 版本是否相同 - 它们应该是相同的,因为 TYPO3 v8 和 TYPO3 v9 都使用相同的外部流体库。

两种情况下的解决方案都是向您的域模型对象添加适当的 getter 方法,并始终记住 f:debug 的输出并非 100% 对应于您实际可以访问的内容:f:debug 例如不会显示没有 属性 关联的虚拟 getter 方法。

我找到了解决问题的方法。

感谢 @Claus Due 我访问了我的模型,看看是否有 getter 和设置器。他们在那里,但在我的 getter、@lazy 参数出现之前。我删除后,一切正常。

谢谢!