Typo3更新:除非使用f:debug,否则Partial不会渲染变量内容

我正在研究从8.7.27到9.5.9的typo3更新,并且在我们自己编写的扩展之一中有一个问题。仅当我使用amplify function invoke myLambdaFunction 时,它才会呈现内容。否则,这些字段将保留为空。

到目前为止,我已经尝试着按照更新指南进行工作,检查并更新了一些不推荐使用的代码,并尝试了不同的拼写,以及对控制器的更改以某种方式了解问题可能出在哪里。到目前为止,什么都没有。

partial只是显示联系人的部分,看起来像这样:

<f:debug>{_all}</f:debug>

来自person-Object的所有信息都不会返回到前端。

如果我现在添加<!-- description --> <div class="abc"> <div class="def"> <div class="col-md-12"> <h2> <f:translate key="extension_name.contact"/> </h2> </div> <div class="name">{person.firstName} {person.lastName}</div> <div class="jobtitle">{person.jobTitle}</div> <div class="col-md-4"> <i class="fal fa-envelope"></i> <f:link.email email=" {person.email}"></f:link.email> </div> </div> </div> <f:debug>{_all}</f:debug>,它就可以正常工作(如果我在控制器中使用var_dump-class一样),则可以获取所有内容。但是<f:debug>{person}</f:debug>(或任何其他变量)会导致返回NULL,即使调试器清楚地表明值在那里而且路径也正确。

我不假设代码中有错误。可能是配置错误? “ Extbase变量转储” -div也被渲染了3次,这可能暗示了问题所在,但是我完全不了解可能出现的问题。

如果有人在我可能进一步研究的方向上有一两个指针,将不胜感激。可悲的是我完全没有主意。

daihongze 回答:Typo3更新:除非使用f:debug,否则Partial不会渲染变量内容

如果“人”的数据来自1:1关系,请检查一次模型是否具有@lazy。如果是这样,请删除@lazy。

不幸的是,“ typo3fluid / fluid”中的某些内容已更改:“ 2.6.7”。因此,在懒惰的情况下,在1:1关系时,@ Lazy不再没有弯路。

另请参阅: https://github.com/TYPO3/Fluid/pull/489 https://github.com/TYPO3/Fluid/pull/486#issuecomment-545661652

,

如何在页面中插入部分?

在9.5及更高版本中,我认为您需要将变量作为部分调用的参数。

<f:render partial="path/to/partial" arguments="{variableInPartial: variableInCallingPage}" /> 要么 <f:render partial="path/to/partial" arguments="{_all}" />

本文链接:https://www.f2er.com/3150201.html

大家都在问