当前位置:  开发笔记 > 编程语言 > 正文

在sonata管理包中列出图像

如何解决《在sonata管理包中列出图像》经验,为你挑选了1个好方法。

我是Symfony的新手并试图在sonata管理包中列出图像.但我有点混淆如何在twig文件中获取一个对象,以便我可以得到我的图像源的确切路径.

这是我的代码

protected function configureListFields(ListMapper $listMapper)
    {
//        $image = $this->getSubject();
        $listMapper
            ->addIdentifier('caption')
                ->add('image','string', array('template' => 'swaamImageUploaderBundle:Admin:list_image.html.twig'))
        ;
    }

这是我的list_image.html.twig文件

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field%}

    

     {##}


{% endblock %}

在我的图像源标签中,我为测试提供了硬编码路径.但不知道如何从db获取路径.

另外,当我只写 - >添加('图像')在控制器中我从后端显示的db获取我的确切路径.

我有一个实体图像.

谁能帮帮我?



1> SimoneB..:

我想你正在使用Sonata Media Bundle

你必须使用该实体,你可以在这里找到所需的帮助:http://sonata-project.org/bundles/media/2-2/doc/reference/helpers.html

如果你需要在控制器中获得完整路径(可能发生,很少但可能发生),你必须使用媒体服务

$mm = $this->container->get('sonata.media.manager.media');
$pr = $this->container->get('sonata.media.provider.image');
$media = $mm->findOneBy(array('id' => $idImage));
$format = $pr->getFormatName($media, 'default');
$path = $pr->generatePublicUrl($media, $format);

或使用控制器内的树枝助手

$format = 'default'; //the format you want to show
$path=$this->get('sonata.media.twig.extension')->path($image, $format);

如果要将图像添加到Sonata Admin(您的案例)的列表字段中,您可以使用此代码

{% block field %}

        {% thumbnail object.image, 'thumb' %}

{% endblock %}

其中image是实体的图像getter方法(es getImage())

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有