我有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