I'm using Symfony 2.7 with Sonata Admin Bundle to manage some products and product images. I used the Sonata Admin Cookbook recipe: https://sonata-project.org/bundles/admin/master/doc/cookbook/recipe_file_uploads.html for images.
Because an image must have a product id associated with it, I want to disable the "Add New" Image link from the Sonata admin dashboard and from the top toolbar, so any uploaded image will have an associated product. Actually the only place where images should be allowed to be added is in the product add/edit page.
I've tried to remove the route like this, according to some answers found here: Sonata Admin Dashboard: configure actions per entity
protected function configureRoutes(RouteCollection $collection)
{
$container = $this->getConfigurationPool()->getContainer();
if ($container->get('request')->get('_route') == 'sonata_admin_dashboard') {
$collection->remove('create');
}
}
But this solution is not good, because, if the cache is initialized when I access the admin dashboard, the route gets removed everywhere, but if the cache is initialized on a different page, then the route will be present on all pages, including dashboard, because Sonata Admin validates in templates if the route exists when displaying the link.
So, I need the route to exist and to remove the link. Can this be done using configuration or I have to rewrite the templates?
In your admin class :
use Sonata\AdminBundle\Route\RouteCollection;
protected function configureRoutes(RouteCollection $collection)
{
$collection->remove('create');
}
You can also remove Delete, Show etc ...
Check : https://sonata-project.org/bundles/admin/master/doc/reference/routing.html#removing-a-single-route
Try this in the admin class:
public function getDashboardActions() {
$actions = parent::getDashboardActions();
unset($actions['create']);
return $actions;
}
In the following you can see a list of options to hide Sonatadmin functions:
protected function configureRoutes(RouteCollection $collection)
{
$collection->remove('create');
$collection->remove('edit');
$collection->remove('delete');
$collection->remove('show');
$collection->remove('export');
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With