我找到了解决问题的方法,我会详细解释,如果其他人有同样的问题,他可以找到答案。
如果有人使用 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->显示
这实际上只是列表视图,它是这样写的,因为它是“控制器动作组合”。
在我的控制器和列表操作上:
$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>
当我尝试在我的详细视图上使用该评估时,问题出现了。由于我没有为详细视图指定任何设置字段,因此流体引擎无法处理评估,因此它通过不显示任何内容来通过错误。鉴于它从上到下读取文档,当流体引擎遇到问题时,它会停止。
在找出问题所在后,我在 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 (Show),并且我已将 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);
现在一切正常。