Sulu列表展示Media缩略图出现TRANSFORMER ERROR错误如何解决
错误原因
thumbnails 转换器要求传入完整的Media实体对象才能生成缩略图,你当前配置里指定了<field-name>id</field-name>,导致该字段只返回Media的数字ID,和转换器要求的对象类型不匹配,所以触发类型错误。
同时你配置的<entity-name>指向了Media实体而非你自己的PlayerInfo实体,和字段映射逻辑不匹配,也是问题诱因之一。
修复方案
修改你的列表XML配置为如下内容:
<property name="avatar" visibility="always" translation="sulu_admin.avatar" sortable="false"> <field-name>photo</field-name> <entity-name>App\Entity\PlayerInfo</entity-name> <joins> <join> <entity-name>SuluMediaBundle:Media</entity-name> <field-name>App\Entity\PlayerInfo.photo</field-name> </join> </joins> <transformer type="thumbnails"/> </property>
主要修改了两处配置:
- 将
<field-name>从id改为photo,直接映射到PlayerInfo实体中关联MediaInterface的photo字段,保证返回完整的Media对象给转换器 - 将
<entity-name>从SuluMediaBundle:Media改为你自定义的App\Entity\PlayerInfo,和字段所属实体对应
配置修改完成后执行php bin/console cache:clear清空后台缓存,重新加载列表即可正常显示缩略图。
内容的提问来源于stack exchange,提问作者Srdjan Mish
相关产品推荐
相关产品推荐

