Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Symfony 螺栓CMS细枝-如何在满足特定条件后呈现总项目计数按钮_Symfony_Twig_Bolt Cms - Fatal编程技术网

Symfony 螺栓CMS细枝-如何在满足特定条件后呈现总项目计数按钮

Symfony 螺栓CMS细枝-如何在满足特定条件后呈现总项目计数按钮,symfony,twig,bolt-cms,Symfony,Twig,Bolt Cms,假设我有一个最新的项目列表,其中包含我的bolt hompage网站的contenttypesitems,我从我的index.twig中的代码中获得: {%setcontent latestitems='items/latest/8%} 然后我用for函数对其进行迭代,从而得到一个项目列表 {% for item in latestitems %} ... {% endfor %} 然后,如果bolt数据库中的项目数量超过8,我想在项目列表底部添加一个按钮,按钮内有文本:“读取另一个xxx

假设我有一个最新的项目列表,其中包含我的bolt hompage网站的contenttypes
items
,我从我的index.twig中的代码中获得:

{%setcontent latestitems='items/latest/8%}

然后我用
for
函数对其进行迭代,从而得到一个项目列表

{% for item in latestitems %}
  ...
{% endfor %}
然后,如果bolt数据库中的项目数量超过8,我想在项目列表底部添加一个按钮,按钮内有文本:“读取另一个xxx项目”,其中xxx是项目总数减去最近项目中的项目总数(在本例中为8)。若数据库中的项目总数小于8,它将不会显示

我的问题是什么代码可以使这个方法工作?我将此代码用于带有
length
过滤器的当前模板,但仍然不起作用:

{% if items|length > 8 %}
  <button>Read another {{ items|length - 8 }} items</button>
{% endif %}
{%if items | length>8%}
阅读另一个{items | length-8}}项
{%endif%}
这是我期待的一张照片


任何人都可以帮我更正代码吗?

坦白说,这最好在扩展中完成,因为
setcontent
的目的是获取记录,而不是统计数据

但你可以这样做:

{% setcontent items = 'items' nohydrate %}
{% set itemscount = items|length %}

这将使变量
itemsont
设置为该ContentType的记录总数。注意上面第一行中的
nohydrate
,这将加快数据库的查找速度。

谢谢@gawain为我提供帮助。但很抱歉我还是不明白。如果
setcontent items
中的变量不包含
items/latest/8
,如何获取最新的8项?我仅将此变量用于迭代项目列表项目,我认为可以直接提到
items | length
,而无需将其包含在
set itemscount
中。此外,
items | length>8
只会影响按钮在数据库中的项目总数(不在
latestitem
变量中)超过8后显示,以免超过8时仍然隐藏。如果我错了,请更正:)您仍然会
{%setcontent latestitems='items/latest/8'%}
,因为它们是您要迭代的记录,上面的示例是让您“…列出bolt数据库中的项目数量…”嘿,我已经按照我的要求解决了这个问题。我将
latestitems
变量块保持原样。我使用
{%setcontent items='items/'%}
显示按钮,然后将
length
过滤器应用于
items
变量,并设置条件
>8
以确保它仅在项目超过条件时显示。items计数器使用
{{items | length-8}}
工作,因此它显示总项目数减去8,8是其上方最新项目列表的总和。无论如何,感谢您提供的
nohydrate
选项。它加快了数据库的速度:)。这是一个很好的问题,但4年零5个月后没有提供答案。如果这个问题已经解决,请回答这个问题让我们知道。如果OP自己找到了解决方案,请提供答案。