Typo3 Extbase在查询/存储库中添加计算字段
我有一个正常的extbase扩展 在控制器中,我获得所有记录:Typo3 Extbase在查询/存储库中添加计算字段,typo3,extbase,typo3-4.5,Typo3,Extbase,Typo3 4.5,我有一个正常的extbase扩展 在控制器中,我获得所有记录: $stuff = $this->jobRepository->findAll(); $this->view->assign('stuff', $stuff); 并在模板中显示它们: <f:for each="{stuffs}" as="stuff"> {stuff.title} <br /> {stuff.category} </f:for> 如果我必须编写自己的查询,
$stuff = $this->jobRepository->findAll();
$this->view->assign('stuff', $stuff);
并在模板中显示它们:
<f:for each="{stuffs}" as="stuff">
{stuff.title} <br />
{stuff.category}
</f:for>
如果我必须编写自己的查询,我必须检查已删除、隐藏、开始时间和结束时间,以检查记录现在是否处于活动状态
我现在的问题是,将它添加到扩展中最干净/最好的方法是什么?我的解决方案是在作业存储库中实现findAll方法。它将首先使用父类中的findAll方法来获取所有作业。通常的约束已经应用。然后它将遍历生成的作业并标记最新的作业
也可以创建一个自定义查询来达到您的目标,但这可能需要更多的工作。实际上,您根本不需要使用其他查询。。。虽然它始终是第一条新记录,但您可以使用for ViewHelper的迭代器:
<f:for each="{stuffs}" as="stuff" iteration="iterator">
<f:if condition="{iterator.isFirst}">THIS ONE IS BRAND NEW STUFF! </f:if>
{stuff.title} <br />
{stuff.category}
</f:for>
我现在用一个自定义查询完成了。我不知道如何添加自创字段isnew。也许我必须用getter和setter将其添加到模型中这根本不重要,因为我只需要这个字段进行初始排序,所以我不需要前端中的值,因为我可以用isnew字段对SQL语句进行排序。
<f:for each="{stuffs}" as="stuff" iteration="iterator">
<f:if condition="{iterator.isFirst}">THIS ONE IS BRAND NEW STUFF! </f:if>
{stuff.title} <br />
{stuff.category}
</f:for>