Symfony 索纳塔媒体文件预览
我在一个Symfony项目中使用sonata捆绑包(管理和媒体)。我需要显示文件预览-PDF文件-(链接下载文件或链接在新选项卡中显示文件)。Symfony 索纳塔媒体文件预览,symfony,sonata-admin,sonata,sonata-media-bundle,Symfony,Sonata Admin,Sonata,Sonata Media Bundle,我在一个Symfony项目中使用sonata捆绑包(管理和媒体)。我需要显示文件预览-PDF文件-(链接下载文件或链接在新选项卡中显示文件)。 我搜索了很多,但没有找到好的解决方案。 这是configureListFields中的字段: ->add('cv', null, array('template' => 'admin:list_image.html.twig')) 这是twig模板代码: {% extends 'SonataAdminBundle:CRUD:base_lis
我搜索了很多,但没有找到好的解决方案。
这是
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 %}
{%extends'SonataAdminBundle:CRUD:base\u list\u field.html.twig%}
{%块字段%}
{%if object.cv!=null%}
{%else%}
没有照片
{%endif%}
{%endblock%}
最后,我通过更改模板找到了解决方案
这是我的管理类:
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 %}
{%extends admin.getTemplate('base\u list\u field')%}
{%块字段%}
{%if值%}
{%set route_name=字段_description.options.route.name%}
{%if not field_description.options.identifier |默认值(false)和
字段\u description.hassociationAdmin和
字段\说明.关联管理员.hasRoute(路由\名称)和
字段\说明.associationadmin.hasAccess(路由\名称,值)%}
{%else%}
{{value}呈现关系元素(字段描述)}
{%endif%}
{%endif%}
{%endblock%}
希望有帮助。您需要渲染链接还是预览(图像)?
cv
对象是什么样子的?不,我需要呈现pdf文件的链接是的,确实有用!感谢您分享您的解决方案。