SonataAdminBundle 将字段显示为标签
SonataAdminBundle show field as label
我有枚举字段 status
,我想在 label label-info
html 中显示。就像它显示的布尔值(红色或绿色)一样。
在演示中他们有很多标签,但我找不到如何添加它们。
您必须为要自定义呈现的字段创建自定义模板。
对于您的 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 %}
在您的管理员中将其配置为模板 class :
$listMapper
// ...
->add('status', null, array(
'template' => 'AcmeBundle:CRUD:status_field.html.twig'
))
解释虽少但很有帮助part of the documentation。
我实际使用 sonata admin Bundle 2.3.3 版本进行了测试,就这么简单:
/**
* @param ListMapper $listMapper
*/
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('status', 'boolean');
}
在您的管理员中 class。
自定义模板有效,但在这种情况下没有必要,因为它已经实现了。供应商模板位于 vendor/sonata-project/admin-bundle/Resources/views/CRUD/list_boolean.html.twig
.
我有枚举字段 status
,我想在 label label-info
html 中显示。就像它显示的布尔值(红色或绿色)一样。
在演示中他们有很多标签,但我找不到如何添加它们。
您必须为要自定义呈现的字段创建自定义模板。
对于您的 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 %}
在您的管理员中将其配置为模板 class :
$listMapper
// ...
->add('status', null, array(
'template' => 'AcmeBundle:CRUD:status_field.html.twig'
))
解释虽少但很有帮助part of the documentation。
我实际使用 sonata admin Bundle 2.3.3 版本进行了测试,就这么简单:
/**
* @param ListMapper $listMapper
*/
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('status', 'boolean');
}
在您的管理员中 class。
自定义模板有效,但在这种情况下没有必要,因为它已经实现了。供应商模板位于 vendor/sonata-project/admin-bundle/Resources/views/CRUD/list_boolean.html.twig
.