SonataAdminBundle 根据对象属性列出不同的操作
SonataAdminBundle List different action depending on object attribute
我想根据列表中的对象属性执行不同的操作。
我的用户 class 有一个布尔属性,我使用自定义操作更改了该属性,该属性将具有发送电子邮件等特殊操作。
我将如何根据该布尔值为列表中的每个对象显示不同的操作?
类似于可编辑的布尔值,但用于操作按钮。
对不起我的英语,非常感谢。
你应该看看这个: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 :
我想根据列表中的对象属性执行不同的操作。
我的用户 class 有一个布尔属性,我使用自定义操作更改了该属性,该属性将具有发送电子邮件等特殊操作。
我将如何根据该布尔值为列表中的每个对象显示不同的操作? 类似于可编辑的布尔值,但用于操作按钮。 对不起我的英语,非常感谢。
你应该看看这个: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 :