Php 删除特定管线的“添加新(创建)”按钮

Php 删除特定管线的“添加新(创建)”按钮,php,symfony,sonata-admin,symfony-sonata,Php,Symfony,Sonata Admin,Symfony Sonata,我是ṫ正在尝试删除/stageserver/list路由的添加新按钮 我已尝试使用此代码: public function getBatchActions() { $actions = parent::getBatchActions(); if($this->hasRoute('/stageserver/list')) { $actions['remove'] = 'create'; } } 我尝试了下一个代码,但它删除了所有其他管理部

我是ṫ正在尝试删除/stageserver/list路由的添加新按钮

我已尝试使用此代码:

public function getBatchActions()
{
    $actions = parent::getBatchActions();

    if($this->hasRoute('/stageserver/list'))
    {
        $actions['remove'] = 'create';
    }

}
我尝试了下一个代码,但它删除了所有其他管理部分中的路由

public function configureRoutes(RouteCollection $collection)
{
   $collection->remove('create');
}
我在Sonata文档中找不到具体的路径删除,或者我已经找到了
错过了。

对于Sonata,您的管理员与单个实体相关

例如,我有一个名为
AppBundle\entity\StageServer
的实体

我创建一个管理服务来管理此实体:

admin.stage_server:
    class: AppBundle\Admin\StageServerAdmin
    public: true
    arguments: [~, AppBundle\Entity\StageServer, ~]
    tags:
        - { name: sonata.admin, manager_type: orm }
为这项服务提供了一个专门的课程:

<?php

namespace AppBundle\Admin;

use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Route\RouteCollection;

class StageServerAdmin extends AbstractAdmin
{
    protected function configureRoutes(RouteCollection $collection)
    {
        $collection->remove('create');
    }
}

使用Sonata,您的管理员与单个实体相关

例如,我有一个名为
AppBundle\entity\StageServer
的实体

我创建一个管理服务来管理此实体:

admin.stage_server:
    class: AppBundle\Admin\StageServerAdmin
    public: true
    arguments: [~, AppBundle\Entity\StageServer, ~]
    tags:
        - { name: sonata.admin, manager_type: orm }
为这项服务提供了一个专门的课程:

<?php

namespace AppBundle\Admin;

use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Route\RouteCollection;

class StageServerAdmin extends AbstractAdmin
{
    protected function configureRoutes(RouteCollection $collection)
    {
        $collection->remove('create');
    }
}

正如我所说的,第二个代码可以工作,但它删除了要添加服务器的其他地方的路由。路由
/stageserver/list
仅用于检查,添加服务器在其他部分。这就是我尝试使用
if语句的原因。我需要的是->在
/stageserver/list
路由上时,删除“添加新”按钮,但在需要该元素的其他路由上时,显示该按钮。您可以尝试使用
配置操作按钮
并在列表上删除“创建”按钮:是的,可以。我没有编写正确的语法,这就是我的代码没有编写正确语法的原因ṫ 工作。顺便说一句,您编写了未完成的代码,其中是
unset
函数,我用缺少的代码编辑了该部分=>
'create']谢谢你的帮助!糟糕的是,我没有在IDE中编写代码。。。正如我所说,第二个代码可以工作,但它会在其他需要添加服务器的地方删除该路由。路由
/stageserver/list
仅用于检查,添加服务器在其他部分。这就是我尝试使用
if语句的原因。我需要的是->在
/stageserver/list
路由上时,删除“添加新”按钮,但在需要该元素的其他路由上时,显示该按钮。您可以尝试使用
配置操作按钮
并在列表上删除“创建”按钮:是的,可以。我没有编写正确的语法,这就是我的代码没有编写正确语法的原因ṫ 工作。顺便说一句,您编写了未完成的代码,其中是
unset
函数,我用缺少的代码编辑了该部分=>
'create']谢谢你的帮助!糟糕的是,我没有在IDE中编写代码。。。Thx Nigel Ren用于编辑