7

単純なデータベースから取得したデータを一覧表示するコードを作成し、そこにデータを編集するアクションを配置しました。この編集ボタンをクリックすると、デフォルトの「編集」ページに移動します。そこに「削除」というボタンがあります。そのボタンを削除したい...

4

4 に答える 4

13

EntityAdmin クラスに以下を追加します

public function configureRoutes(RouteCollection $collection)
{
  $collection->remove('create');
}
于 2012-09-19T08:06:24.567 に答える
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;
        }
    }
...
}
于 2014-06-06T07:09:30.590 に答える
3

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 つの方法があります。

  • 削除ルートを削除すると、管理者のすべての場所からすべての削除ボタンが削除されます
  • 管理者で hasroute 関数を再定義すると、同じ効果が得られます
  • オブジェクトの削除権限を削除します。権限に何を使用するかによって異なります
于 2012-07-30T00:19:38.800 に答える