告诉我。为什么如果指定操作按钮模板,则无论访问权限如何,都会显示该按钮?
$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',
],
]
]);
以及如何指定模板,以便根据访问权限显示按钮?
答案 0 :(得分:0)
可能的原因是您忘记在自定义模板中添加访问权限检查。
如果您查看build-in Sonata template,您会发现实际访问检查是在模板本身而不是外部代码中完成的。因此,只需将这些支票从原始模板复制到您的模板中即可。
示例:
{% if admin.hasAccess('delete', object) and admin.hasRoute('delete') %}
{# --- Your custom button view here --- #}
{% endif %}