2017-02-12 80 views
2

我使用了带有Symfony 3.1的Sonata Admin 3.13,并希望在列表视图中显示上传的图像。我有以下ListFields一个PaintingAdmin:Symfony3.1&Sonata管理员 - 列表字段的模板被忽略

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('name', null, ['label' => 'Name']) 
     ->add('category', null, ['label' => 'Kategorie']) 
     ->add('size', null, ['label' => 'Größe']) 
     ->add('imageFilename', null, [ 
      'template' => 'sonata:imagepreview.html.twig', 
      'label' => 'Bild' 
     ]); 
    ; 
} 

而在app/Resources/views/sonata/imagepreview.html.twig

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %} 
{% block field %} 
    <div> 
     {% if object.imageFilename != null %} 
      <img src="{{ asset('uploads/images/' ~ object.imageFilename) }}" class="img-responsive" /> 
     {% else %} 
      <div class="warn">Kein Bild</div> 
     {% endif %} 
    </div> 
{% endblock %} 

一个模板,但该模板完全地忽略,它只显示值imageFilename。其他一切正常(即label显示为Bild

回答

0

您需要告诉索纳塔您正在使用自定义模板。

你可以在你的管理服务声明:

librinfo_crm.admin.organism: 
     class: Librinfo\CRMBundle\Admin\OrganismAdmin 
     arguments: [~, Librinfo\CRMBundle\Entity\Organism, LibrinfoCRMBundle:OrganismAdmin] 
     tags: 
      - name: sonata.admin 
       manager_type: orm 
       group: Customers Relationship Management 
       label: librinfo.crm.organism_admin.label 
       label_translator_strategy: blast_core.label.strategy.librinfo 
     calls: 
      - [ setTemplate, [list, LibrinfoCRMBundle:OrganismAdmin:list.html.twig]] 

,或者你可以重写你的管理类的$模板阵列()。

如果你想用“经典”的symfony模板继承您的自定义模板应该有比原来相同的路径蚂蚁名称,因此,如果你想更换SonataAdminBundle:CRUD:base_list_field.html.twig您的自定义模板应该是app/Resources/view/CRUD/base_list_field.html.twig

0

我建议您使用完整路径的模板: 应用程序/资源/视图/索纳塔/ imagepreview.html.twig

->add('imageFilename', null, [ 
     'template' => 'sonata\imagepreview.html.twig', 
     'label' => 'Bild' 
    ]); 

所以,你可以sonata\imagepreview.html.twig是相对于应用程序/资源/视图/文件夹。

在版本4.x版< symfony中的我们把树枝tempates的方法有两种:在

  1. RealPath: `src\AppBundle\Resources\views\MyCustomFolder\my_file.html.twig` 
    
    Path: `AppBundle::MyCustomFolder\my_file.html.twig` 
    
  2. 内的软件包外应用程序文件夹

    RealPath: `app\Resources\views\MyCustomFolder\my_file.html.twig` 
    
    Path: `MyCustomFolder\my_file.html.twig` 
    

你可以阅读更多的Official Symfony documantation