【问题标题】:Symfony : Sonata Media file previewSymfony:奏鸣曲媒体文件预览
【发布时间】:2017-11-17 14:15:14
【问题描述】:

我在一个 Symfony 项目中工作,其中包含奏鸣曲捆绑包(管理和媒体)。我需要显示文件预览 - PDF 文件 - (下载文件的链接或在新标签中显示的链接)。
我搜索了很多没有好的解决方案。
这是configureListFields中的字段:

->add('cv', null, array('template' => 'admin:list_image.html.twig'))

这是twig 模板代码:

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

【问题讨论】:

  • 需要渲染链接还是预览(图片)? cv 对象长什么样子?
  • 不,我需要为 pdf 文件呈现链接

标签: symfony sonata-admin sonata sonata-media-bundle


【解决方案1】:

最后我通过更改模板找到了解决方案。

这是我的管理类

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper->add('cv', null, array(
        'template' => 'admin/list_field_cv.html.twig'
    ));
}

这是我的自定义模板

{% extends admin.getTemplate('base_list_field') %}

{% block field %}
    {% if value %}
        {% set route_name = field_description.options.route.name %}
        {% if not field_description.options.identifier|default(false) and
        field_description.hasAssociationAdmin and
        field_description.associationadmin.hasRoute(route_name) and
        field_description.associationadmin.hasAccess(route_name, value) %}
            <div class="btn-group">

                <a class="btn btn-default btn-sm btn-block"
                   href="{{ field_description.associationadmin.generateObjectUrl(route_name, value, field_description.options.route.parameters) }}">
                    {{ value|render_relation_element(field_description) }} : to media
                </a>
                <a class="btn btn-info btn-sm btn-block"
                   href="{{ path('sonata_media_download', {'id': (object.cv.id)}) }}">
                    {{ value|render_relation_element(field_description) }} : Télécharger
                </a>
                <a class="btn btn-link btn-sm btn-block"
                   href="{% path object.cv,'reference' %}">
                    {{ value|render_relation_element(field_description) }} :  Ouvrir
                </a>

            </div>
        {% else %}
            {{ value|render_relation_element(field_description) }}
        {% endif %}
    {% endif %}
{% endblock %}

希望对你有帮助。

【讨论】:

  • 是的,确实有帮助!感谢您分享您的解决方案。
猜你喜欢
  • 2017-11-22
  • 2013-12-04
  • 2017-09-17
  • 1970-01-01
  • 2018-12-08
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 2015-04-07
相关资源
最近更新 更多