首页 > 解决方案 > TYPO3 Fluid 中的图像未显示,出现错误

问题描述

我需要在前端显示图像。

<div class="col-md-12">
    <f:debug>{user.image.0}</f:debug>
    <f:if condition="{user.image}">
        <f:then>
            <f:image image="{user.image.0}" width="100" alt="" />
        </f:then>
        <f:else>
        </f:else>
    </f:if>
</div>

调试user.image给出了这个

TYPO3\CMS\Extbase\Domain\Model\FileReferenceprototypepersistent entity (uid=34, pid=8)    
uidLocal         => protected 16 (integer)   
originalResource => protected NULL    
uid              => protected 34 (integer)   
_localizedUid    => protected 34 (integer) modified   
_languageUid     => protected  0 (integer) modified  
_versionedUid    => protected 34 (integer) modified   
pid              => protected  8 (integer)

但在前端我得到这个错误

1476107295:PHP 可捕获的致命错误:TYPO3\CMS\Extbase\Persistence\ObjectStorage 类的对象无法转换为字符串

我试图同时使用两者image="src="但没有任何效果。

是否与服务器上未安装 GraphicsMagick 有关?

标签: typo3-8.xfluid-styled-content

解决方案


您的问题的原因可能是使用{user.image.0}.
虽然在早期版本的流体中,您可以通过这种方式找到数组的第一个图像,但在较新的版本中,数组需要另一种处理方式:

<f:for each="{user.image}" as="userimage" iteration="iterator">
    <f:if condition="{iterator.isFirst}"><f:image image="{userimage}" width="100" alt="" /></f:if>
</f:for>

推荐阅读