Получить значение параметра объекта и пользовательский текстовый столбец в сопоставителе списка Sonata Admin

У меня есть объект Post, который может иметь несколько комментариев. Я хочу показать ссылку на комментарии в представлении списка сообщений в виде нового столбца.

Для этого я определил маршрут, который будет использоваться внутри генератора списка сообщений.

admin_post_comments:
    prefix: /admin
    path: /post/{post_id}/comment/list


protected function configureListFields(ListMapper $listMapper)
{
        $listMapper
            ->addIdentifier('title', null, array('label' => 'Title'))
            ->add('comments', 'url',
                array('label' => 'Comments',
                      'route' => array(
                        'name' => 'admin_post_comments',
                        'parameters' => array('post_id' => 'post.id')
                      )));
}

Но как мне получить фактический «идентификатор сообщения» для каждой строки, чтобы сгенерировать правильный ur? Прямо сейчас URL-адрес будет «/post/post.id/comment/list», но должен быть «/post/1/comment/list».

Когда я выбираю «комментарии» в качестве типа поля столбца, поле остается пустым. Как я могу заставить его писать «просмотреть комментарии»?

Спасибо,

Хендрик


person Hendrik    schedule 24.04.2016    source источник


Ответы (1)


Я думаю, что у вас нет доступа к этой информации таким образом. Но если вы определяете шаблон поля таким образом:

        ->add('comments', 'url', array(
            'label' => 'Comments',
            'template' => ':list:list.template.comments.html.twig'
        ))

Таким же образом вы можете определить ветку со своей ссылкой, а также должны включить количество комментариев, если хотите. Что-то похожее на это:

<td class="sonata-ba-list-field sonata-ba-list-field-{{ field_description.type }}" objectId="{{ admin.id(object) }}">
{{ path(admin_post_comments, {'id': object.id}) }}<span class="badge"">{{ object.comments|length }}</span>

In this TWIG you can access to admin, object (The post), value and many other variables

person Jose M. González    schedule 18.05.2016