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

Mic*_*icE 5 php symfony symfony-sonata sonata-admin

我正在使用SonataAdminBundle作为Symfony2(v2.0.x)驱动的网站的管理界面的基础.

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

  • 名单

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

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

Mun*_*Das 11

在您的EntityAdmin课程中添加以下内容

public function configureRoutes(RouteCollection $collection)
{
  $collection->remove('create');
}
Run Code Online (Sandbox Code Playgroud)


lik*_*eit 9

要从Admin班级中删除单个路线,请使用

protected function configureRoutes(RouteCollection $collection)
    {
        $collection->remove('edit');
    }
Run Code Online (Sandbox Code Playgroud)

Symfony 2.1+中,您可能会clearExcept删除给定路径之外的所有路径,如下所示:

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

这样做的好处是可以保持您的操作,就像添加新操作一样SonataAdminBundle.

Symfony 2.0中,还有类似的未记录功能(感谢Jeroen):

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