我正在研究从8.7.27到9.5.9的typo3更新,并且在我们自己编写的扩展之一中有一部分出现问题。仅当我使用<f:debug>{_all}</f:debug>
时才呈现内容。否则,这些字段将为空。
到目前为止,我一直在尝试按照更新指南进行操作,检查并更新了一些不推荐使用的代码,并尝试了不同的拼写,以及对控制器的更改以某种方式了解问题可能出在哪里。到目前为止,什么都没有。
partial只是显示联系人的部分,看起来像这样:
<!-- 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>
来自person-Object的一切都不会返回到前端。
如果现在添加<f:debug>{_all}</f:debug>
或<f:debug>{person}</f:debug>
,它就可以正常工作(与在控制器内部使用var_dump-class相同),并且可以获取所有内容。但是<f:debug>{person.firstName}</f:debug>
(或任何其他变量)会导致返回NULL,即使调试器清楚地表明值在那里并且路径也正确。
我不假定代码中有错误。可能是配置错误? “ Extbase变量转储” -div也被渲染了3次,这可能暗示了这个问题,但是我完全不了解我的外观。
如果有人在我可能进一步研究的方向上有一两个指针,将不胜感激。可悲的是,我完全没有主意。
如何在页面中插入部分?
在9.5及更高版本中,我认为您需要将变量作为部分调用的参数。
<f:render partial="path/to/partial" arguments="{variableInPartial: variableInCallingPage}" />
要么<f:render partial="path/to/partial" arguments="{_all}" />