Да, вы можете в вашем configureListFields действия класса администратора, при добавлении _action колонки на $ listMapper, вы должны добавить параметр шаблона для удалить действия, а затем вы можете реализовать определенную логику в этом шаблоне:
$listMapper
...
->add('_action', 'actions', array(
'actions' => array(
'delete' => array(
'template' => 'YourAdminBundle:List:list_delete_action.html.twig',
),
),
));
А потом в list_delete_action.html.twig:
{% if admin.isGranted('DELETE', object) and admin.hasRoute('delete') and not object.isActive %}
<a href="{{ admin.generateObjectUrl('delete', object) }}" class="btn btn-sm btn-default delete_link" title="{{ 'action_delete'|trans({}, 'SonataAdminBundle') }}">
<i class="glyphicon glyphicon-remove"></i>
{{ 'action_delete'|trans({}, 'SonataAdminBundle') }}
</a>
{% endif %}
Вот в этом Templ у вас будет определено object
, которое является сущностью для каждой строки списка, поэтому вы можете использовать его получатели, чтобы получить что-то от вас. Обратите внимание, что условие в выражении if and not object.isActive
, поэтому здесь вы применяете свою дополнительную логику.
Большое спасибо! :) – Chemaclass