流体变量不再读取 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
模式:作曲家
此致,
可能以下情况之一为真:
- 您忘记为您尝试访问的 属性 添加 getter 方法,并且您混淆了
f:debug
的输出与 实际上 可从对象中获取。调试 ViewHelper 输出也受保护的属性。
- 您使用
__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
参数出现之前。我删除后,一切正常。
谢谢!
所以我有一个 table,其中列出了一些约会。这些约会属于一个事件。这里的目标是列出所有约会并获取它们所属事件的信息。
到目前为止一切正常,直到我尝试获取事件的信息。我得到一个 object,看起来像这样:
现在如果我使用这样的东西:{appointment.event.title}
它会返回 NULL
。
这意味着它不访问属性。 在 TYPO3 v8 中完美运行,但在 TYPO3 v9 中运行不佳。
如果我激活 <f:debug>{appointment}</f:debug>
并使整个 object 得到调试,那么这个 {appointment.event.title}
就可以了!我可以得到标题。
现在的问题是自 TYPO3 8 以来发生了什么变化并且无法再访问这些属性,我如何才能重新获得访问权限?
正在使用:TYPO3 v9
模式:作曲家
此致,
可能以下情况之一为真:
- 您忘记为您尝试访问的 属性 添加 getter 方法,并且您混淆了
f:debug
的输出与 实际上 可从对象中获取。调试 ViewHelper 输出也受保护的属性。 - 您使用
__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
参数出现之前。我删除后,一切正常。
谢谢!