2017-02-12 3 views
2

Symfony 3.1でSonata Admin 3.13を使用し、アップロードした画像をlistviewに表示したいとします。私は、次のListFieldsとPaintingAdminありますsymfony3.1&Sonata Adminリストフィールドのテンプレートは無視されます

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

でテンプレートをしかしcompletly無視されるテンプレートは、それだけで価値imageFilenameを示しています。それ以外はうまく動作します(はBildと表示されます)

答えて

0

カスタムテンプレートを使用していることをSonataに伝える必要があります。

あなたは、管理サービスの宣言でそれを行うことができます。

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]] 

か、あなたの管理者クラスの$テンプレート配列を()をオーバーライドすることができます。

あなたがあなたのカスタムテンプレートがapp/Resources/view/CRUD/base_list_field.html.twig

0

にする必要がありますSonataAdminBundle:CRUD:base_list_field.html.twigを交換しようとしているので、もし、あなたのカスタムテンプレートは、元のものよりも同じパスアリの名前を持つ必要があります「クラシック」symfonyのテンプレートの継承を使用したい場合は、私がお勧めテンプレートへのフルパスを使用していること: アプリ/リソース/ビュー/ソナタ/ imagepreview.html.twig

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

をので、sonata\imagepreview.html.twigアプリ/リソース/ビュー/フォルダに相対的であることができますように。バンドル外

  1. バンドルインサイド

    RealPath: `src\AppBundle\Resources\views\MyCustomFolder\my_file.html.twig` 
    
    Path: `AppBundle::MyCustomFolder\my_file.html.twig` 
    
  2. :我々は小枝tempatesを配置する2つの方法があり、バージョン4.xの<のsymfonyにおいて

    アプリフォルダ

    あなたは Official Symfony documantation

    で詳細を読むことができます

関連する問題