"また、ユーザー(ユーザーとグループ)を完全に削除または非表示にするにはどうすればよいですか?
私たちはSonataUserBundleとAppBundleを持っています。 両方とも、ユーザーとグループのエンティティがあります。ソナタのエンティティを使用することは望ましくありません。しかし、SonataUserBundleにはすでにUserAdminクラスとGroupAdminクラスがあります。 なぜ、管理メニューにSonataUserBundleをインストールした後、2つのサービス現れだということ:あなたが知っているように、我々はservices.ymlファイルで宣言するすべてのソナタ管理クラスを
![enter image description here](https://i.stack.imgur.com/sbvBQ.png)
を。 はSonataUserBundleでは、ソナタの開発者がでサービスを宣言し、別のファイルを、持っている教義のORMを使用した場合には、我々はこのパスにあるadmin_orm.xmlファイルをご覧ください:。
vendor/sonata-project/user-bundle/Resources/config/admin_orm.xml
我々は見つけることができますファイルインサイド
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="sonata.user.admin.groupname">sonata_user</parameter>
<parameter key="sonata.user.admin.label_catalogue">SonataUserBundle</parameter>
<parameter key="sonata.user.admin.groupicon"><![CDATA[<i class='fa fa-users'></i>]]></parameter>
</parameters>
<services>
<service id="sonata.user.admin.user" class="%sonata.user.admin.user.class%">
<tag name="sonata.admin" manager_type="orm" group="%sonata.user.admin.groupname%" label="users" label_catalogue="%sonata.user.admin.label_catalogue%" label_translator_strategy="sonata.admin.label.strategy.underscore" icon="%sonata.user.admin.groupicon%"/>
<argument/>
<argument>%sonata.user.admin.user.entity%</argument>
<argument>%sonata.user.admin.user.controller%</argument>
<call method="setUserManager">
<argument type="service" id="fos_user.user_manager"/>
</call>
<call method="setTranslationDomain">
<argument>%sonata.user.admin.user.translation_domain%</argument>
</call>
</service>
<service id="sonata.user.admin.group" class="%sonata.user.admin.group.class%">
<tag name="sonata.admin" manager_type="orm" group="%sonata.user.admin.groupname%" label="groups" label_catalogue="%sonata.user.admin.label_catalogue%" label_translator_strategy="sonata.admin.label.strategy.underscore"/>
<argument/>
<argument>%sonata.user.admin.group.entity%</argument>
<argument>%sonata.user.admin.group.controller%</argument>
<call method="setTranslationDomain">
<argument>%sonata.user.admin.group.translation_domain%</argument>
</call>
</service>
</services>
あなたがここに私たちのサービスのIDS見ることができるように:
をUSERADMINとGroupAdmin - 管理サービスの宣言0
sonata.user.admin.user
sonata.user.admin.group
これらを上書きする最も簡単な方法は、services.ymlファイルで同じサービス(このIDを使用することを意味します)を作成することです。 はい、あなたは私と一緒に議論をすることができます、この方法は愚かですが、私が言ったように、それは唯一ではありません。OUR services.ymlの意志で
だから、ソナタのサービスは、次のようになります。
sonata.user.admin.user:
class: "%sonata.user.admin.user.class%"
arguments: [~, "%sonata.user.admin.user.entity%", "%sonata.user.admin.user.controller%"]
tags:
- { name: sonata.admin, manager_type: orm, group: "%sonata.user.admin.groupname%", label_catalogue: "%sonata.user.admin.label_catalogue%", label: "users", icon: "<i class=\"fa fa-users\"></i>" }
calls:
- [ setUserManager, [ "@fos_user.user_manager" ] ]
- [ setTranslationDomain, [ "%sonata.user.admin.user.translation_domain%" ] ]
sonata.user.admin.group:
class: "%sonata.user.admin.group.class%"
arguments: [~, "%sonata.user.admin.group.entity%", "%sonata.user.admin.group.controller%"]
tags:
- { name: sonata.admin, manager_type: orm, group: "%sonata.user.admin.groupname%", label_catalogue: "%sonata.user.admin.label_catalogue%", label: "groups" }
calls:
- [ setTranslationDomain, [ "%sonata.user.admin.group.translation_domain%" ] ]
今、あなたは管理ダッシュボードを更新し、何も起こらなかったことを、見ることができます。しかし、私たちの目的は、ダッシュボードとメニューからこのサービスを無効にすることでした。そのトリックをやりましょう。このサービスの宣言にservices.ymlを追加すると、
show_in_dashboard: false
tags:
- { show_in_dashboard: false, name: sonata.admin, manager_type: orm, group: "%sonata.user.admin.groupname%", label_catalogue: "%sonata.user.admin.label_catalogue%", label: "users", icon: "<i class=\"fa fa-user\"></i>" }
が表示されます。
したがって、私たちのサービスは、次のようになります。この些細な操作・ソナタサービス後
sonata.user.admin.user:
class: "%sonata.user.admin.user.class%"
arguments: [~, "%sonata.user.admin.user.entity%", "%sonata.user.admin.user.controller%"]
tags:
- { name: sonata.admin, manager_type: orm, group: "%sonata.user.admin.groupname%", label_catalogue: "%sonata.user.admin.label_catalogue%", label: "users", icon: "<i class=\"fa fa-user\"></i>", show_in_dashboard: false }
calls:
- [ setUserManager, [ "@fos_user.user_manager" ] ]
- [ setTranslationDomain, [ "%sonata.user.admin.user.translation_domain%" ] ]
sonata.user.admin.group:
class: "%sonata.user.admin.group.class%"
arguments: [~, "%sonata.user.admin.group.entity%", "%sonata.user.admin.group.controller%"]
tags:
- { name: sonata.admin, manager_type: orm, group: "%sonata.user.admin.groupname%", label_catalogue: "%sonata.user.admin.label_catalogue%", label: "groups", show_in_dashboard: false }
calls:
- [ setTranslationDomain, [ "%sonata.user.admin.group.translation_domain%" ] ]
を完全に自分のダッシュボードから消えます。