Как получить изображения, перечисленные в комплекте соната

Я хочу получить миниатюру изображения, указанную в области списка, я не знаю, как это сделать, может кто-нибудь мне помочь. У меня есть заголовок в конце. Я использую пакет Sonata adim и следую его официальному документу.

вот мой imageAdmin.php

namespace swaam\ImageUploaderBundle\Admin; use Sonata\AdminBundle\Admin\Admin; use Sonata\AdminBundle\Datagrid\ListMapper; use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Form\FormMapper; class ImageAdmin extends Admin { // Fields to be shown on create/edit forms protected function configureFormFields(FormMapper $formMapper) { $formMapper ->add('caption', 'ckeditor', array('label' => 'Ca ption')) // ->add('file', 'entity', array('class' => 'swaam\ImageUploaderBundle\Entity\image')) ->add('file', 'file', array('data_class' => 'Symfony\Component\HttpFoundation\File\File' ,'property_path' => 'file' )) ->end(); //if no type is specified, SonataAdminBundle tries to guess it ; } // Fields to be shown on filter forms protected function configureDatagridFilters(DatagridMapper $datagridMapper) { $datagridMapper ->add('caption') ->add('thumbpath') ; } // Fields to be shown on lists protected function configureListFields(ListMapper $listMapper) { $listMapper ->addIdentifier('caption') // ->add('thumbpath') ->add('thumbpath') ; } } 

Вот мой метод configureListFields после обновления

  protected function configureListFields(ListMapper $listMapper) { $listMapper // ->addIdentifier('caption') // ->add('thumbpath') // ->add('thumbpath') ->add('thumbpath', null, array('template' => 'swwamImageUploaderBundle:Admin:list_image.html.twig')) // ->add('thumbpath', null, array('template' => 'swwamImageUploaderBundle:Admin:list_image.html.twig')) ; } 

и вот моя ветка

 {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %} {% block field%} <div> {#<img src="{{ image.webPath | imagine_filter('gallery_element_admin') }}" />#} //<img src="{{ app.request.scheme ~ '://' ~ app.request.host ~ '/' ~ image.getthumbWebPath }}" /> {# or whatever to create src of image #} </div> {% endblock %} 

Самый простой способ – создать собственный шаблон поля администратора. В методе configureListFields добавьте:

 ->add('path', null, array('template' => 'AcmeBundle:Admin:list_image.html.twig')) 

И создайте файл AcmeBundle / Resources / views / Admin / list_image.html.twig с контентом:

 {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %} {% block field%} <div> <img src="{{ object.webPath | imagine_filter('gallery_element_admin') }}" /> {# or whatever to create src of image #} </div> {% endblock %} 

Мне нужно было что-то похожее, и это мой результат через некоторое время в Интернете.

Я добавил шаблон tbe в методе configureListFields из класса admin:

  ->add('culture', "string", array( 'template' => 'AEWBackendBundle:CRUD:list_culture_image.html.twig' )) 

Я создал шаблон в представлении:

 {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %} {% block field%} <div> {% set flag = web_path ~ 'images/flags/' ~ object.culture.name(object) ~ '.png' %} {% if file_exists(flag) %} <img id="culture_image" title="{{ object.culture }}" src="/images/flags/{{ object.culture.name }}.png" height="15" /> {% else %} <img id ="culture_image" title="en" src="/images/flags/default.png" height="15" /> {% endif %} </div> {% endblock %} 

В параметрах.yml:

 web_path: %kernel.root_dir%/../web/ 

В config.yml:

 twig: globals: web_path: %web_path% 

Создал файл TwigExtension.php, чтобы использовать функцию file_exists PHP как расширение ветки

 <?php namespace AEW\FrontendBundle\Services\Extension; use \Twig_Filter_Function; use \Twig_Filter_Method; class TwigExtension extends \Twig_Extension { /** * Return the functions registered as twig extensions * * @return array */ public function getFunctions() { return array( 'file_exists' => new \Twig_Function_Function('file_exists'), ); } public function getName() { return 'twig_extension'; } } 

Добавлены строки конфигурации в config.yml для нового расширения:

 parameters: aew.twig_extension.class: AEW\FrontendBundle\Services\Extension\TwigExtension services: aew.twig_extension: class: %aew.twig_extension.class% tags: - { name: twig.extension } 

Надеюсь, это поможет вам или кому-либо еще, кто ищет эту информацию в будущем.