我现在有一个低效的解决方案。也许有人可以改进它。
为了显示与给定主题相关的所有小册子,我创建了一个模板topic.twig
。在该模板中,record.title
包含主题的名称(例如“音乐”)并record.id
包含主题的 ID。我们需要选择标记为与具有该 ID 的主题相关的小册子。以下代码获取所有小册子,pamphletlist
然后逐一考虑。使用有价值的dump()
功能,我发现小册子的数据结构包含一个数组relation
,其中包含一个数组topics
。下面的代码有效,因为在我的数据中,一本小册子只能与一个主题相关。代码:
{# to get a list of all pamphlets related to this topic #}
{% setcontent pamphletlist = 'pamphlets' %}
{% for p in pamphletlist %}
{{ dump(p) }}
{% for t in p.relation.topics %}
{% if record.id == t %}
<p><a href = " {{ p.link }} "> {{ p.title }} </a></p>
{% endif %}
{% endfor %}
{% endfor %}
where
使用子句肯定会更有效,如下所示:
{% setcontent pamphletlist = 'pamphlets' where { relation.topics: ... } %}
这可能会在数据库级别完成选举,而不是依次查看每条记录。但是我的实验只产生了树枝语法错误。有没有人有更有效的方法?