我编写了一个代码来列出从一个简单的数据库中获取的数据,然后我在其中设置了一个编辑数据的操作。当我单击此“编辑”按钮时,它将转到默认的“编辑”页面。那里有一个名为“删除”的按钮。我想删除那个按钮......
答案 0 :(得分:12)
在您的EntityAdmin类中添加以下
public function configureRoutes(RouteCollection $collection)
{
$collection->remove('create');
}
答案 1 :(得分:4)
我需要隐藏编辑表单中的删除按钮,但不要从列表中删除删除功能。
这就是我做的方式......如果有人需要做类似的事情
第1步:将SonataAdminBundle:CRUD:base_edit_form.html.twig复制到您的捆绑包中,并根据需要注释掉代码/更新
//YourBundle/Resources/views/EntityAdmin/base_edit_form.html.twig
{% block form %}
...
{#{% if admin.hasroute('delete') and admin.isGranted('DELETE', object) %}#}
{#{{ 'delete_or'|trans({}, 'SonataAdminBundle') }}#}
{#<a class="btn btn-danger" href="{{ admin.generateObjectUrl('delete', object) }}">{{ 'link_delete'|trans({}, 'SonataAdminBundle') }}</a>#}
{#{% endif %}#}
...
{% endblock %}
第2步:添加新的视图资源edit.html.twig以扩展默认编辑模板
//YourBundle/Resources/views/EntityAdmin/edit.html.twig
{% extends 'SonataAdminBundle:CRUD:base_edit.html.twig' %}
{% use 'YourBundle:EntityAdmin:base_edit_form.html.twig' with form as parentForm %}
{% block form %}
{{ block('parentForm') }}
{% endblock %}
第3步:更新您的Admin类以使用上述模板
//YourBundle/Admin/EntityAdmin.php
class EntityAdmin extends Admin{
...
public function getTemplate($name)
{
switch ($name) {
case 'edit':
return 'SomeBundle:EntityAdmin:edit.html.twig';
break;
default:
return parent::getTemplate($name);
break;
}
}
...
}
答案 2 :(得分:2)
base_edit_form.html.twig:
{% if admin.hasroute('delete') and admin.isGranted('DELETE', object) %}
{% trans from 'SonataAdminBundle' %}delete_or{% endtrans %}
<a class="btn danger" href="{{ admin.generateObjectUrl('delete', object) }}">{% trans from 'SonataAdminBundle' %}link_delete{% endtrans %}</a>
{% endif %}
我认为有三种方法可以实现这一目标:
答案 3 :(得分:0)
首先在CustomClassAdmin中使用RouteCollection类:
use Sonata\AdminBundle\Route\RouteCollection;
并添加以下代码:
public function configureRoutes(RouteCollection $collection)
{
$collection->remove('delete');
}