我正在使用一个名为 bolt.cm 的框架。一个基于silex的简单框架。有一个 twig 函数可以获取特定内容类型的记录:
{% setcontent products = 'products' %}
获取记录并按特定字段排序:
{% setcontent products = 'products' orderby 'datepublish' %}
上面将获取按 datepublish 字段排序的记录。现在,我想从 GET 参数中传递 orderby 字段。我将 GET 参数存储在从控制器传递的全局 twig 变量中,定义为sort_by
变量。
{{ sort_by }}
上面会将 sort_by 值打印到 html 中。在页面中:/products?sort_by=datepublish
将sort_by
值设置为datepublish
现在我将将此变量组合到 setcontent 函数中,如下所述:
{% setcontent products = 'products' orderby sort_by %}
现在我收到错误:
An exception has been thrown during the compilation of a template ("Attribute "value" does not exist for Node "Twig_Node_Expression_Name".") in "products.twig".
我的问题很简单,如何使 sort_by 被识别为该函数中的一个值?请不要告诉我这样做:
{% if sort_by == 'datepublish' %}
{% setcontent products = 'products' orderby 'datepublish' %}
{% elseif sort_by == 'another_field' %}
{% setcontent products = 'products' orderby 'another_field' %}
{# and so on for every single field #}
{% endif %}