我想根据列表中的对象属性采取不同的操作。
我的User类具有一个布尔属性,我可以使用一个自定义操作来更改它的布尔属性,该自定义操作将具有一些特殊的操作,例如发送电子邮件。
如何根据该布尔值对列表的每个对象显示不同的操作?类似于可编辑的布尔值,但用于操作按钮。对不起我的英语,非常感谢。
您应该看一下:SonataAdminBundle自定义呈现列表中的文本字段
为列表定义一个新的自定义类型,并使用它来显示您的boolean属性:
$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 %}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句