When they exist, I'd like to get specification PDFs from a product entry. They're stored in a productInfo
Matrix field, in a specifications
block that has a downloads
Assets collection.
Naturally I attempted the following...
{% set specFiles = entry.productInfo.specifications.downloads %}
{% for specFile in specFiles %}
{{ specFile.title }}
{% endfor %}
...and Craft thought I was being greedy:
Internal Server Error
Craft\ElementCriteriaModel and its behaviors do not have a method or closure named "specifications".
I noticed in this SE question that examples skipped referencing the block type and went straight for the field name, so I tried that next...
{% set specificationDownloads = entry.productInfo.downloads %}
{% for specFile in specificationDownloads %}
{{ specFile.title }}
{% endfor %}
This didn't throw any error, but it didn't return any results either.
I know that I can loop through the blocks and then the downloads, it just seems excessive...
{% for block in entry.productInfo %}
{% if block.type == 'specifications' %}
{% for specFile in block.downloads %}
{{ specFile.title }}
{% endfor %}
{% endif %}
{% endfor %}
So what is the most straightforward way to get results when I want to limit them to a specific (Assets) field within a certain Matrix block type?