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

问题描述 投票:0回答:2

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

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

enter image description here

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

这意味着它不会访问属性。在TYPO3 v8中,它可以很好地工作,但不适用于TYPO3 v9。

如果我激活<f:debug>{appointment}</f:debug>并将整个对象调试,那么这个{appointment.event.title}工作!我可以得到冠军。

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

使用中:TYPO3 v9

时尚:作曲家

最好的祝福,

object typo3 fluid typo3-8.x typo3-9.x
2个回答
1
投票

可能以下之一是真的:

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

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

在任何一种情况下,解决方案都是为您的域模型对象添加正确的getter方法,并始终记住f:debug的输出并不是100%对应于您实际可以访问的内容:@Claus Due将例如不显示没有的虚拟getter方法与之相关的财产。


1
投票

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

感谢@lazy我访问了我的模型,看看是否有吸气剂和制定者。他们在我吸气之前就在那里,qazxswpoi参数存在。删除后,一切正常。

谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.