View SonataAdminBundle将字段显示为标签

View SonataAdminBundle将字段显示为标签,view,sonata-admin,symfony-sonata,symfony,View,Sonata Admin,Symfony Sonata,Symfony,我有枚举字段状态,我想在标签信息html中显示它。就像它显示的布尔值(红色或绿色) 在那里的演示他们有很多标签,但我找不到如何添加它们 必须为要自定义渲染的字段创建自定义模板 对于您的状态字段,创建如下模板: // src/AcmeBundle/Resources/views/CRUD/status_field.html.twig {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %} {% block field %

我有枚举字段
状态
,我想在
标签信息
html中显示它。就像它显示的布尔值(红色或绿色)

在那里的演示他们有很多标签,但我找不到如何添加它们


必须为要自定义渲染的字段创建自定义模板

对于您的
状态
字段,创建如下模板:

// 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 %}

这篇文章解释得不多,但很有帮助。

我实际上使用了sonata管理包版本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

我没有给出这个替代方案,因为我认为所有者知道他可以硬定义字段的类型。谢谢你的补充。
/**
 * @param ListMapper $listMapper
 */
protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->add('status', 'boolean');
}