0

我应该如何在 SonataAdminBundle 的列表视图表中添加换行符?

我向我的实体添加了一个函数,如下所示:

getTest() {
    return "test 1 \n test 2";
}

在我的configureListFields函数中,我以这种方式添加字段:

$listMapper->add('test', null, array('label' => 'Test'))

我也尝试将类型更改为text,stringdoctrine_orm_text,但没有帮助。

使用<br />而不是\n没有帮助,因为输出被转换为 html 实体。

4

2 回答 2

1

还有一种更简单的方法:

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->add('message', null, array(
            'template' => 'SensioPlatformBundle:Admin:AuditTrail/message.html.twig',
        ))
    //...

然后在您的模板中:

<td>
    {{ value|nl2br }}
</td>
于 2014-11-20T18:23:31.210 回答
0

我发现了一种可能性:覆盖文本模板的 base_list_field.html.twig 模板:定义nl2br块时添加过滤器:field

list_text_field.html.twig

<td class="sonata-ba-list-field sonata-ba-list-field-{{ field_description.type }}" objectId="{{ admin.id(object) }}">
{% if
        field_description.options.identifier is defined
    and field_description.options.route is defined
    and admin.isGranted(field_description.options.route.name == 'show' ? 'VIEW' : field_description.options.route.name|upper, object)
    and admin.hasRoute(field_description.options.route.name)
%}
    <a href="{{ admin.generateObjectUrl(field_description.options.route.name, object, field_description.options.route.parameters) }}">
        {%- block field %}{{ value|nl2br }}{% endblock -%}
    </a>
{% else %}
    {{ block('field') }}
{% endif %}
</td>

在你的config.yml

sonata_doctrine_orm_admin:
    templates:
        types:
            list:
                text: YourBundle:Admin:list_text_field.html.twig

configureListFields

$listMapper->add('test', 'text', array('label' => 'Test'))
于 2013-01-31T15:43:05.180 回答