如何在Sonata Admin中指定操作按钮模板

时间:2018-07-10 14:24:31

标签: symfony sonata-admin

告诉我。为什么如果指定操作按钮模板,则无论访问权限如何,都会显示该按钮?

$listMapper
    ->add('_action', 'actions', [
        'actions' => [
            //displayed depending on the access rights
            'edit' => [],
            //displayed regardless of access rights 
            'delete' => [
                'template' => '@App/list__action_delete.html.twig',                 
            ],
        ]
    ]);

以及如何指定模板,以便根据访问权限显示按钮?

1 个答案:

答案 0 :(得分:0)

可能的原因是您忘记在自定义模板中添加访问权限检查。

如果您查看build-in Sonata template,您会发现实际访问检查是在模板本身而不是外部代码中完成的。因此,只需将这些支票从原始模板复制到您的模板中即可。

示例:

    {% if admin.hasAccess('delete', object) and admin.hasRoute('delete') %}
        {# --- Your custom button view here --- #}
    {% endif %}