2015-09-28 14 views
6

Używam Symfony 2.7 z pakietem Sonata Admin do zarządzania niektórymi produktami i obrazami produktów. Użyłem przepisu Sonata Admin Cookbook: https://sonata-project.org/bundles/admin/master/doc/cookbook/recipe_file_uploads.html dla obrazów.Sonata Admin: Jak usunąć przycisk "Dodaj nowy" tylko na pulpicie nawigacyjnym?

Ponieważ obraz musi zawierać identyfikator produktu, chcę wyłączyć łącze "Dodaj nowy" Obraz z pulpitu administracyjnego Sonata i z górnego paska narzędzi, aby każdy przesłany obraz był powiązany z produktem. Właściwie jedynym miejscem, w którym obrazy powinny być dodawane, jest strona dodawania/edycji produktu.

Próbowałem usunąć trasę tak, według niektórych odpowiedziach znaleźć tutaj: 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'); 
    } 
} 

Ale to rozwiązanie nie jest dobre, ponieważ, jeśli bufor jest inicjowany kiedy przejść do panelu administracyjnego , trasa zostanie usunięta wszędzie, ale jeśli pamięć podręczna zostanie zainicjowana na innej stronie, trasa będzie obecna na wszystkich stronach, w tym na desce rozdzielczej, ponieważ Sonata Admin sprawdza w szablonach, czy trasa istnieje podczas wyświetlania linku.

Potrzebuję trasy do usunięcia i usunięcia linku. Czy można to zrobić za pomocą konfiguracji lub muszę przerobić szablony?

Odpowiedz

0

W konfiguracji administratora sonaty, w której definiujesz swoich administratorów, usuń tag "group". Wygląda to mniej więcej tak.

services: 
    sonata.admin.images: 
     class: AppBundle\Admin\ImageAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: "Content", label: "Manage images" } 
     arguments: 
      ... 

(usunąć group: "Content" lub cokolwiek masz ustawiony jako grupa)

Będzie to umieścić obraz administracyjny w oddzielnym bloku o nazwie „default”.

Następnie jednoznacznie określić, który blokuje pokażesz na desce rozdzielczej, pozostawiając na "default":

sonata_admin: 
    dashboard: 
     groups: 
      Content: ~ 
      AnotherGroup: ~ 
+0

Dziękuję za poświęcony mi czas na odpowiedź na moje pytanie. Rzeczywiście, jest to metoda na pozbycie się linku "Dodaj nowy" z mojego pulpitu nawigacyjnego, ale usunie również link "Lista" i chcę, aby lista była dostępna. Co więcej, nie powoduje to usunięcia linku na górnym pasku narzędzi. –

3

Spróbuj I n klasa administratora:

public function getDashboardActions() { 
    $actions = parent::getDashboardActions(); 
    unset($actions['create']); 
    return $actions; 
} 
+0

To powinno być oznaczone jako poprawna odpowiedź. – user1970395

Powiązane problemy