将Craft升级到3.2.1后无法从单一条目获取资产

时间:2019-07-13 10:11:01

标签: twig craftcms

我正在Craft CMS中建立内容网站。我使用单个条目来输出图像,但是在将Craft升级到3.2.1之后,此方法不起作用。其他一切都很好。

我收到此错误: Twig运行时错误– Twig \ Error \ RuntimeError 具有类“ craft \ elements \ db \ AssetQuery”的ArrayAccess的对象中的键“ 1”不存在。

    <div class="detail_content_photos3 row">
        <div class="detail_content_photos3_photo col-xs-12 col-md-4">
            <img src="{{ entry.videoPhoto3x3[0].url }}"/>
        </div>
        <div class="detail_content_photos3_photo col-xs-12 col-md-4">
            <img src="{{ entry.videoPhoto3x3[1].url }}"/>
        </div>
        <div class="detail_content_photos3_photo col-xs-12 col-md-4">
            <img src="{{ entry.videoPhoto3x3[2].url }}"/>
        </div>
        <div class="detail_content_photos3_photo col-xs-12 col-md-4">
            <img src="{{ entry.videoPhoto3x3[3].url }}"/>
        </div>
        <div class="detail_content_photos3_photo col-xs-12 col-md-4">
            <img src="{{ entry.videoPhoto3x3[4].url }}"/>
        </div>
        <div class="detail_content_photos3_photo col-xs-12 col-md-4">
        <img src="{{ entry.videoPhoto3x3[5].url }}"/>
        </div>
    </div>

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为该条目没有分配给该字段的6张图像,只有1张,即键0。当树枝尝试访问不存在的第二张图像时,它将引发运行时错误。如果要显示所有图像,可以执行以下操作:

<div class="detail_content_photos3 row">
  {% for image in entry.videoPhoto3x3.all() %}
    <div class="detail_content_photos3_photo col-xs-12 col-md-4">
      <img src="{{ image.url }}"/>
    </div>
  {% endfor %}
</div>

通过{% for image ... %},您可以访问每个资产,而无需知道其索引或有多少等等。