Обновление Typo3: Partial не отображает переменное содержимое, если не используется f: debug - PullRequest
0 голосов
/ 06 ноября 2019

Я работаю над обновлением typo3 с 8.7.27 до 9.5.9 и у меня проблема с одним частичным в одном из наших собственных написанных расширений. Содержимое отображается только в том случае, если я использую <f:debug>{_all}</f:debug>. В противном случае поля остаются пустыми.

До сих пор я пытался пройтись по руководству по обновлению, проверил и обновил некоторый устаревший код и попробовал различные варианты написания, а также изменения в контроллере, чтобы каким-то образом понять, в чем проблема. Пока ничего.

Частичное является просто разделом для отображения контактного лица и выглядит следующим образом:

<!-- 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> или <f:debug>{person}</f:debug>, все будет работать нормально (то же самое, если я использую класс var_dump внутри контроллера), и я получу весь контент. Но <f:debug>{person.firstName}</f:debug> (или любая другая переменная) приводит к возвращению NULL, даже если отладчик ясно показывает, что значения есть, и пути также правильные.

Я не предполагаю ошибку в коде. Возможно какая-то неверная конфигурация? "Extbase Variable Dump" -div также визуализируется три раза, что может указывать на проблему, но у меня совершенно нет идей, куда я мог бы взглянуть.

Было бы очень признательно, если бы у кого-то был указатель или два, в каком направлении я мог бы продолжить исследование. К сожалению, у меня совершенно нет идей.

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Если данные для «лица» получены из отношения 1: 1, проверьте один раз, имеет ли модель @lazy. Если это так, удалите @ lazy.

К сожалению, что-то изменилось в "typo3fluid / liquid": "2.6.7". Так что при соотношении 1: 1 @ Lazy больше не работает без объездов.

См. Также: https://github.com/TYPO3/Fluid/pull/489 https://github.com/TYPO3/Fluid/pull/486#issuecomment-545661652

0 голосов
/ 06 ноября 2019

Как вы вставляете частичное в вашу страницу?

В 9.5 и выше я думаю, что вам нужно дать переменную в качестве аргумента частичного вызова.

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

...