Шаблон поля списка администраторов сонаты игнорируется - PullRequest
0 голосов
/ 29 июня 2018

Я использую Symfony 4.1.1 и Sonata Admin Bundle 3.35.2.

Я хочу использовать пользовательский шаблон для поля в виде списка администратора. Шаблон игнорируется. Я использую Twig в качестве движка шаблонов.

В админке:

# /src/Admin/ImageAdmin.php

protected function configureListFields(ListMapper $listMapper) {
    $listMapper
        ->add('filename', 'string', ['template' => 'list_image.html.twig'])
    ;
}

Шаблон:

# /templates/list_image.html.twig

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    <img src="{{ value }}" style="width: 200px" />
{% endblock %}

Ответы [ 2 ]

0 голосов
/ 07 июля 2018

У меня была такая же проблема (Symfony 4.1), попробуйте решение здесь Использовать пользовательский столбец в списке администратора Sonata так что поменяйте:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

до:

{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}

это сработало для меня. Проблема в том, что даже если ваше местоположение правильное (я получил его после некоторых экспериментов) и вы расширили неправильный шаблон, вы не получите никакой ошибки.

0 голосов
/ 01 июля 2018

Должно быть

# /templates/list_image.html.twig

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
 <div>
    <img src="{{ object.filename }}" style="width: 200px" />
 </div>
{% endblock %}

SRC будет просто именем файла, а не полным путем к файлу, поэтому изображение не будет напечатано. Исправьте эту проблему также.

Другая проблема в том, что вы приняли какую-то мистическую ценность? Я не вижу, где вы присваиваете ему значение.

Вы можете получить доступ к получателям объекта, написав object.fieldname. Этот работает как функция получения печати вашего текущего объекта.

...