Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 Extbase在查询/存储库中添加计算字段_Typo3_Extbase_Typo3 4.5 - Fatal编程技术网

Typo3 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> 如果我必须编写自己的查询,

我有一个正常的extbase扩展

在控制器中,我获得所有记录:

$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>