Sonata管理bundle预览来自列表映射器中某个实体的图像,但没有Sonata媒体bundle



我想知道该如何处理这个问题。在sonata管理面板中,我有用户,我想预览ListMapper缩略图中的用户配置文件图片。我是symfony的新手,在试图理解这些概念时仍然有点困惑。

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

picture.html wig

{% 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-模板

一个独立的实体,-没有用户-,在我添加了一个媒体的地方,这对我来说是有效的

在管理员配置ListFields中->add('media','string',array('template'=>'SonataMediaBundle:MediaAdmin:list_image.html.twitg')

最新更新