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

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

我正在研究从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次,这可能暗示了这个问题,但是我完全不了解我的外观。

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

debugging typo3 fluid typo3-9.x
1个回答
0
投票

如何在页面中插入部分?

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

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

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