Sonata admin bundle 预览图像来自列表映射器中的某个实体,没有 sonata media bundle

Sonata admin bundle preview image from some entity in list mapper without sonata media bundle

我想知道我应该如何解决这个问题。在奏鸣曲管理仪表板中,我有用户,我想在 ListMapper 的缩略图中预览用户个人资料图片。我是 symfony 的新手,但在尝试理解这些概念时仍然有点困惑。

您需要创建一个自定义模板,在其中显示您的用户图像,我假设您的实体用户是图片实体,它具有提供图像的路径方法 URL:

picture.html.twig

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<div>
    {% if object.picture != null %}
    <img src="{{ object.picture.path }}">
    {% else %}
    <span>No picture</span>
    {% endif %}
</div>
{% endblock %}

您知道必须在列表中使用此模板

class UserAdmin extends Admin
{
    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('id')
            ->add('picture', null, array(
                'template' => 'ApplicationSonataAdminBundle:User:picture.html.twig'
            ));
    }
}

文档可在此处获取:http://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/list_field_definition.html#custom-template

一个单独的实体,-没有用户-,我在其中添加了一种媒体,这对我有用

在管理员配置列表字段中 ->添加('media', 'string', 数组('template' => 'SonataMediaBundle:MediaAdmin:list_image.html.twig'))