我有enum字段status
,我想在label label-info
html中显示。就像它显示的布尔值(红色或绿色)。SonataAdminBundle显示字段作为标签
在那里演示他们有很多标签,但我找不到如何添加它们。
我有enum字段status
,我想在label label-info
html中显示。就像它显示的布尔值(红色或绿色)。SonataAdminBundle显示字段作为标签
在那里演示他们有很多标签,但我找不到如何添加它们。
你必须创建要自定义渲染领域的自定义模板。在您的管理类
// 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 %}
将其配置为模板:
为了您status
场,创建一个模板,这样
$listMapper
// ...
->add('status', null, array(
'template' => 'AcmeBundle:CRUD:status_field.html.twig'
))
解释了一点,但有帮助part of the documentation。
我竟与索纳塔管理套件版本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
。
我没有给出这种替代方案,因为我认为业主知道他可以硬定义该字段的类型。谢谢你的补充。 – chalasr