繁体   English   中英

TYPO3部分渲染无法正常工作

[英]TYPO3 Partials rendering does not work properly

问题如下。 我做了一个扩展,其中有一个列表视图和详细信息视图。 列表视图工作正常。 当我进入详细视图并尝试通过Show.html渲染部分时,会出现问题。 该问题将在结构后详细说明。

结构如下:

↳私人的

↳部分

↳详细

↳公寓

↳模板

mobil固定进口

↳List.html

↳Show.html

所以在Show.html上我有这个:

<f:render partial="Detail/Apartment" arguments="{_all}" />

在Apartment.html上,我有一个要读取的变量:

{immobilieImport.street}

当我调用列表视图并单击一个对象时,它会将我重定向到详细信息视图,如预期那样。 我得到正确的价值观,一切正常。 但是,当我返回另一个对象并单击它以访问详细视图时,它不会呈现局部视图或Show.html。

我在配置no_cache = 0上也关闭了页面属性上的缓存。

当我使用<f:debug>{immobilieImport}</f:debug>我会获得所有正确的值,但它不会在前端显示html。

TYPO3版本7.6.23

有什么想法吗? 如果您需要更多信息,请随时询问。

最好的祝福

我找到了解决我的问题的方法,我将详细解释它,因此,如果其他人遇到相同的问题,他可以找到答案。

如果有人使用FlexForm设置,则该问题可能很常见。

在我的列表视图中,我有一个<f:if>语句,在该语句中我评估创建日期是否少于30天。 通过让用户自己定义时间,我使其变得灵活。 为了使用户能够这样做,您需要在FlexForm上添加设置。 所以在我的FlexForm上,我有这个:

<settings.timeToGetOld>
   <TCEforms>
      <label>Number of days that stays as "New"</label>
      <displayCond>FIELD:switchableControllerActions:=:ImmobilieImport->list;ImmobilieImport->show</displayCond>
      <config>
         <type>input</type>
         <size>6</size>
         <max>6</max>
         <eval>int</eval>
         <default>30</default>
      </config>
   </TCEforms>
</settings.timeToGetOld>

FIELD:switchableControllerActions:=:ImmobilieImport-> list; ImmobilieImport-> show

实际上,这仅是列表视图,其编写方式是因为它是“控制器动作组合”。

在我的控制器和列表操作上:

$this->view->assign('settings', $this->settings);

然后在我的液体上:

f:if condition="{f:format.date(date: '{immobilieImport.creationDate}', format: 'Y-m-d')} > {f:format.date(date: 'now-{settings.timeToGetOld} days', format: 'Y-m-d')}"><span class="new_object">New</span>

当我尝试在“详细信息视图”上使用该评估时出现问题。 由于我没有为“详细视图”指定任何设置字段,因此流体引擎无法处理评估,因此不显示任何内容会通过错误进行评估。 考虑到它读取文档从上到下的事实,因此当Fluid Engine遇到问题时,它停止了工作。

在找出问题所在之后,我在FlexForm上又添加了一个设置:

<settings.timeToGetOldDetailView>
       <TCEforms>
          <label>Number of days that stays as "New"</label>
          <displayCond>FIELD:switchableControllerActions:=:ImmobilieImport->show</displayCond>
          <config>
             <type>input</type>
             <size>6</size>
             <max>6</max>
             <eval>int</eval>
             <default>30</default>
          </config>
       </TCEforms>
    </settings.timeToGetOldDetailView>

现在,我仅将displayCond更改为“ Detail View”(显示),并将我的“ Fluid”(Show.html)也更改为{settings.timeToGetOldDetailView}

f:if condition="{f:format.date(date: '{immobilieImport.creationDate}', format: 'Y-m-d')} > {f:format.date(date: 'now-{settings.timeToGetOldDetailView} days', format: 'Y-m-d')}"><span class="new_object">New</span>

我也在我的控制器上添加了这个:

$this->view->assign('settings', $this->settings);

现在一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM