答案 0 :(得分:5)
您必须为要自定义渲染的字段创建自定义模板。
对于您的status
字段,请创建如下模板:
// src/AcmeBundle/Resources/views/CRUD/status_field.html.twig
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
{% set status = object.status == 1 ? 'success' : 'danger' %}
<div>
<span class="label label-{{ status }}">{{ object.status }}</span><br />
</div>
{% endblock %}
在管理员类中将其配置为模板:
$listMapper
// ...
->add('status', null, array(
'template' => 'AcmeBundle:CRUD:status_field.html.twig'
))
在小而有帮助的part of the documentation中解释。
答案 1 :(得分:2)
我实际上使用奏鸣曲管理员Bundle版本2.3.3进行了测试,它就像这样简单:
/**
* @param ListMapper $listMapper
*/
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('status', 'boolean');
}
在您的管理类中。
自定义模板可以正常工作,但在这种情况下不需要,因为它已经实现了。供应商模板位于vendor/sonata-project/admin-bundle/Resources/views/CRUD/list_boolean.html.twig
。