我使用SonataAdminBundle
作为Symfony2(v2.0.x)支持网站的管理界面的基础。
在SonataAdmin中添加到仪表板的实体默认情况下具有以下操作:
这适用于大多数实体,但是网站有一些实体,其数据不是通过管理界面添加的 - 即它们是从面向公众的网站输入的。管理员只需要查看它们(仪表板中的“列表”操作),编辑它们或删除它们。管理员不应该能够向这些实体添加数据。
有没有办法配置SonataAdmin仪表板中各个实体旁边显示哪些操作?
答案 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'))
}