Конкатентное поле в пользовательском столбце в представлении «Соната»

Я пытаюсь добавить настраиваемое поле в представление списка в Sonata Admin, где он будет конкат фиксированной строки ( http://www.example.com ) и полевого пула, как показано ниже, чтобы я мог получить доступ к этому конкретному продукту URL - адрес. Столбец отображается в таблице, и ссылка создана, но я не могу понять, как передать переменную slug в шаблон, чтобы она работала.

У меня есть следующая конфигурация:

 #ProductAdmin.php
    protected function configureListFields(ListMapper $listMapper)
        {

        $listMapper->addIdentifier('id')
            ->addIdentifier('name')
            ->add('date')
            ->add('slug', 'text', [
                'editable' => true
            ])
            ->add('link', 'string', [
                'template' => 'default/admin-link.html.twig',
            ])


#default/admin-link.html.twig
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    <a href="https://www.wattdoesituse.com/{{ slug }}">Product link</a>
{% endblock %}

symfony,sonata-admin,symfony3.4,

1

Ответов: 1


1 принят

В шаблоне вы можете получить доступ к objectданным текущей итерации из цикла, просто вызвать {{object.slug}}шаблон для доступа к slug для определенной строки, например

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

{% block field %}
    <a href="https://www.wattdoesituse.com/{{ object.slug }}">Product link</a>
{% endblock %}

Или было бы лучше, если вы создадите свои URL-адреса, используя метод route / path

Symfony, соната-администратор, symfony3.4,
Похожие вопросы