Sonata Admin Dashboard:配置每个实体的操作

时间:2012-03-06 16:07:49

标签: php symfony symfony-sonata sonata-admin

我使用SonataAdminBundle作为Symfony2(v2.0.x)支持网站的管理界面的基础。

在SonataAdmin中添加到仪表板的实体默认情况下具有以下操作:

  • 添加
  • 列表

这适用于大多数实体,但是网站有一些实体,其数据不是通过管理界面添加的 - 即它们是从面向公众的网站输入的。管理员只需要查看它们(仪表板中的“列表”操作),编辑它们或删除它们。管理员不应该能够向这些实体添加数据。

有没有办法配置SonataAdmin仪表板中各个实体旁边显示哪些操作?

2 个答案:

答案 0 :(得分:11)

EntityAdmin课程中添加以下内容

public function configureRoutes(RouteCollection $collection)
{
  $collection->remove('create');
}

答案 1 :(得分: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 中,也有类似的undocumented功能(感谢Jeroen):

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