Typo3 在f:for循环中将当前项与上一项进行比较
我想按Typo3 在f:for循环中将当前项与上一项进行比较,typo3,fluid,extbase,typo3-6.2.x,Typo3,Fluid,Extbase,Typo3 6.2.x,我想按开始日期(稍后按律师全名)对我的约会进行分组。 因此,我只想在前一次约会的startDate不同时显示约会的startDate。 这就是我试过的。但我真的不知道如何从上一次操作中获取对象。 第3行是现在发生故障的地方 <f:widget.paginate objects="{appointments}" as="paginatedAppointments"> <f:for each="{paginatedAppointments}" as="appoint
开始日期
(稍后按律师全名
)对我的约会进行分组。因此,我只想在前一次约会的
startDate
不同时显示约会的startDate
。这就是我试过的。但我真的不知道如何从上一次操作中获取对象。 第3行是现在发生故障的地方
<f:widget.paginate objects="{appointments}" as="paginatedAppointments">
<f:for each="{paginatedAppointments}" as="appointment" iteration="i">
<f:if condition="{appointment.startDate->f:format.date(format:'d.m.Y')} != {0:paginatedAppointments.{i.index-1}.startDate->f:format.date(format:'d.m.Y')}">
<f:then>
<br/>
{appointment.startDate->f:format.date(format:'d.m.Y')}<br/>
{appointment.startTime->f:format.date(format:'H:i')}<br/>
{appointment.lawyer.fullName}<br/><br/>
</f:then>
<f:else>
{appointment.startTime->f:format.date(format:'H:i')}<br/>
{appointment.lawyer.fullName}<br/>
<br/><br/>
</f:else>
</f:if>
</f:for>
</f:widget.paginate>
{appointment.startDate->f:format.date(格式:'d.m.Y')}
{appointment.startTime->f:format.date(格式:'H:i')}
{约会.律师.全名}
{appointment.startTime->f:format.date(格式:'H:i')}
{预约.律师.全名}
如果您有答案,请记住:如果可能的话,我真的很想继续使用这个有用的分页小部件
--编辑--
我注意到另一个问题的答案在
DateTime
对象的分组方面完美地解决了我的问题,所以我将我的问题标记为重复。感谢Jigal的回答,我找到了它,因为我忘记了f:groupedFor
您可以创建一个ViewHelper
,其中包含一些值,作为一个参数进行比较,该参数将startDate
保存在一个静态变量中,如果与上一个变量不同,则返回true/false。如果它具有某种重置功能,也很有用,例如:
{vendor:utility.compareLast(reset:1)}
<f:for each="{paginatedAppointments}" as="appointment" iteration="i">
<f:if condition="{vendor:utility.compareLast(value:'{appointment.startDate->f:format.date(format:\'d.m.Y\')}')}">
...
{vendor:utility.compareLast(重置:1)}
...
您可以创建一个ViewHelper
,其中包含一些要比较的值,作为一个参数,该参数将startDate
保存在静态变量中,如果与上一个变量不同,则返回true/false。如果它具有某种重置功能,也很有用,例如:
{vendor:utility.compareLast(reset:1)}
<f:for each="{paginatedAppointments}" as="appointment" iteration="i">
<f:if condition="{vendor:utility.compareLast(value:'{appointment.startDate->f:format.date(format:\'d.m.Y\')}')}">
...
{vendor:utility.compareLast(重置:1)}
...
使用f:groupedFor
viewhelper,您可以按开始日期对项目进行分组。在内部循环中,您可以检查迭代器是否是第一个迭代器,并在这种情况下显示startDate。请参见使用f:groupedFor
viewhelper,您可以按开始日期对项目进行分组。在内部循环中,您可以检查迭代器是否是第一个迭代器,并在这种情况下显示startDate。请参见不幸的是,它显然不适用于DateTimeObjects,在我的案例中不适用——但它适用于律师分组!也许它不是设计用来处理DateTimeObjects的。我们将查看核心代码,看看是什么阻止它工作。不幸的是,它显然不适合DateTimeObjects,在我的情况下不适合,但它适合律师分组!也许它不是设计用来处理DateTimeObjects的。我将查看核心代码,看看是什么阻止了它的工作。因为我以前从未创建过ViewHelper,所以现在学习这一点需要花费太多时间,但我稍后会查看它-谢谢!创建ViewHelper非常简单,不创建它是不值得的。好吧,我将尝试创建一个-感谢您的动机!)因为我以前从未创建过ViewHelper,所以现在学习这一点需要花费太多时间,但我会在以后再看它-谢谢!创建ViewHelper非常简单,不创建它是不值得的。好吧,我将尝试创建一个-感谢您的动机!)