Sonata管理员捆绑预览图像来自列表映射器中的某个实体,没有奏鸣曲媒体包

时间:2015-02-06 08:18:02

标签: symfony sonata-admin

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

2 个答案:

答案 0 :(得分:13)

您需要创建一个显示用户图像的自定义模板,我将假设您的实体用户作为图片实体,其具有提供图像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

答案 1 :(得分:1)

一个独立的实体, - 没有用户 - 我已经添加了一个媒体,这对我来说是

在admin configureListFields中 - &gt;添加(&#39;媒体&#39;,&#39;字符串&#39;,数组(&#39;模板&#39; =&gt;&#39; SonataMediaBundle:MediaAdmin:list_image.html.twig&# 39))