Как удалить действия в классе администратора Sonata? - PullRequest
0 голосов
/ 29 августа 2018

Я работаю с приложением Symfony 2.7, которое использует пакет администрирования Sonata.

В классе администрирования, который я создал, в методе configureListFields присутствует следующий код:

        ->add('_action', 'actions', [
            'actions' => [
                'show' => ['sort'=>''],
                'edit' => ['sort'=>''],
                'delete' => ['sort'=>''],
            ]
        ])

Но я не хочу, чтобы все эти действия присутствовали. Поэтому вместо этого я выгляжу так:

        ->add('_action', 'actions', [
            'actions' => [
                'edit' => ['sort'=>''],
            ]
        ])

... и я обнаружил, что, к удивлению, ничего не меняется в представлении списка. Все три действия все еще присутствуют. Я также попытался удалить ключ "действия" полностью. Ни один из подходов не работает.

Что я здесь не так делаю? Как удалить действия, которые мне не нужны?

1 Ответ

0 голосов
/ 29 августа 2018

Добавьте функцию configureRoutes в свой класс администратора

protected function configureRoutes(RouteCollection $collection)
{
    $collection->remove('edit')
    // or if you want to remove everything except some routes
    $collection->clearExcept(array('list', 'show'));
}
...