我应该如何在SonataAdminBundle的列表视图表中添加换行符?
我在我的实体中添加了一个函数:
getTest() {
return "test 1 \n test 2";
}
在我的configureListFields
函数中,我以这种方式添加字段:
$listMapper->add('test', null, array('label' => 'Test'))
我也尝试将类型更改为text
,string
和doctrine_orm_text
,但它没有帮助。
使用<br />
代替\n
无法帮助收集,因为输出已转换为html实体。
答案 0 :(得分:1)
有一种更简单的方法:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('message', null, array(
'template' => 'SensioPlatformBundle:Admin:AuditTrail/message.html.twig',
))
//...
然后在你的模板中:
<td>
{{ value|nl2br }}
</td>
答案 1 :(得分: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'))