Поле Concat в пользовательском столбце в представлении Sonata Admin - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь добавить настраиваемое поле в представление списка в 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 %}

1 Ответ

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

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

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

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

Или было бы лучше, если бы вы генерировали свои URL с использованием метода маршрута / пути

...