【问题标题】:SonataAdminBundle show field as labelSonataAdminBundle 将字段显示为标签
【发布时间】:2016-05-27 13:54:45
【问题描述】:

我有枚举字段status,我想在label label-info html 中显示。就像它显示的布尔值(红色或绿色)一样。

在演示中,它们有很多标签,但我找不到如何添加它们。

【问题讨论】:

    标签: view sonata-admin symfony-sonata symfony


    【解决方案1】:

    您必须为要自定义呈现的字段创建自定义模板。

    为您的 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 中进行了解释。

    【讨论】:

      【解决方案2】:

      我实际上用奏鸣曲管理包版本 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

      【讨论】:

      • 我没有给出这种选择,因为我认为所有者知道他可以硬定义字段的类型。感谢您的补充。
      猜你喜欢
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 2022-01-14
      • 2022-01-05
      相关资源
      最近更新 更多