5

SonataAdminBundleSymfony2 (v2.0.x) を利用した Web サイトの管理インターフェイスのベースとして使用しています。

SonataAdmin のダッシュボードに追加されたエンティティには、デフォルトで次のアクションがあります。

  • 追加
  • リスト

これはほとんどのエンティティで問題なく機能しますが、Web サイトには、管理インターフェイスを介してデータが追加されないエンティティがいくつかあります。つまり、これらのエンティティは公開 Web サイトから入力されます。管理者は、それらを表示 (ダッシュボードの「リスト」アクション)、編集、または削除するだけで済みます。管理者は、これらのエンティティにデータを追加できないようにする必要があります。

SonataAdmin ダッシュボードで個々のエンティティの横に表示されるアクションを設定する方法はありますか?

4

2 に答える 2

11

あなたのEntityAdminクラスに以下を追加してください

public function configureRoutes(RouteCollection $collection)
{
  $collection->remove('create');
}
于 2012-03-07T13:31:12.693 に答える
9

Adminクラスから単一のルートを削除するには、次を使用します

protected function configureRoutes(RouteCollection $collection)
    {
        $collection->remove('edit');
    }

Symfony 2.1+では、次のように、指定 されたルート以外clearExceptのすべてのルートを削除するために使用できます。

public function configureRoutes(RouteCollection $collection)
{
  $collection->clearExcept(array('list', 'edit', 'delete', 'batch'))
}

これには、新しいアクションが に追加された場合に、アクションをそのまま維持できるという利点がありますSonataAdminBundle

Symfony 2.0にも同様の文書化されていない関数があります (Jeroen に感謝):

public function configureRoutes(RouteCollection $collection)
{
  $collection->removeAllExcept(array('list', 'edit', 'delete', 'batch'))
}
于 2012-08-21T19:55:36.073 に答える