【问题标题】:SonataAdminBundle List different action depending on object attributeSonataAdminBundle 根据对象属性列出不同的操作
【发布时间】:2017-01-06 14:57:42
【问题描述】:

我想根据列表中的对象属性进行不同的操作。

我的 User 类有一个布尔属性,我使用自定义操作更改了该属性,该操作将具有特殊操作,例如发送电子邮件。

如何根据该布尔值为列表的每个对象显示不同的操作? 像一个可编辑的布尔值,但用于操作按钮。 抱歉我的英语不好,非常感谢。

【问题讨论】:

    标签: list symfony sonata-admin


    【解决方案1】:

    你应该看看这个:SonataAdminBundle custom rendering of text fields in list

    为列表定义一个新的自定义类型并使用它来显示您的布尔属性:

    $listMapper
        ->add('my_boolean', 'custom_type')
    

    还有你的新类型模板:

    {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
    
    {% block field%}
        {% if value == 1 %}
        <a href="...">Change to 0</a>
        {% else %}
        <a href="...">Change to 1</a>
        {% endif %}
    {% endblock %}
    

    如果需要,您可以访问当前对象和模板中的管理员:

    {% set editable = admin.isGranted('EDIT', object) and object.foo == true %}
    {% if editable == true %}
        {% if value == 1 %}
        <a href="...">Change to 0</a>
        {% else %}
        <a href="...">Change to 1</a>
        {% endif %}
    {% else %}
        {{ value }}
    {% endif %}
    

    有关您可以在模板中访问的更多信息,请查看所有default list templates of Sonata

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 2018-05-23
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多