2017-06-15 4 views
4

Je travaille sur un projet symfony avec des bundles sonata (admin et media), j'ai besoin d'afficher un fichier -PDF file- (lien pour télécharger le fichier ou un lien pour l'afficher dans un nouvel onglet. Je cherchai beaucoup sans une bonne solution c'est le FILD dans configureListFields.Symfony: Aperçu du fichier Sonata Media

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

c'est le code de brindille modèle:

{% 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 %} 

toute aide s'il vous plaît, merci à l'avance

+0

avez-vous besoin de rendre un lien ou un aperçu (image)? A quoi ressemble l'objet 'cv'? – lordrhodos

+0

non je dois rendre un lien pour le fichier pdf –

Répondre

0

Enfin je l'ai trouvé une solution en changeant le modèle:

Ceci est ma classe admin:

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

et ceci est mon modèle personnalisé:

{% 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 %} 

J'espère ça aide !