Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF2][SF][Symfony2]Dodanie controllera w sonata admin
Forum PHP.pl > Forum > PHP > Frameworki
Crash89
Witam,

Chciałbym dodać controller do sonaty admin w symfony 3.
Ale nie chce mi działać, robiłem to według dokumentacji z symfony, poniżej kod:

  1. class OrdersAdminController extends BaseController
  2. {
  3.  
  4. /**
  5.   * @param ProxyQueryInterface $selectedModelQuery
  6.   * @param Request|null $request
  7.   */
  8. public function batchActionGeneratePdf(ProxyQueryInterface $selectedModelQuery, Request $request = null) {
  9. var_dump($request);
  10. die();
  11. }
  12. }
  13.  
  14. i admin.yml
  15.  
  16. services:
  17. app.admin.orders:
  18. class: AppBundle\Admin\OrdersAdmin
  19. tags:
  20. - { name: sonata.admin, manager_type: orm, group: E-commerce, label: Orders }
  21. arguments:
  22. - null
  23. - AppBundle\Entity\Orders
  24. - AppBundle\Controller\OrdersAdminController
  25. public: true


Błąd jaki mi wyskakuje to:
A `Sonata\AdminBundle\Controller\CRUDController::batchActionGeneratePdf` method must be callable

Chyba ten controller nie jest widziany, bo jak dodam to do bazowego controllera w vendorze to działa.
ohm
BaseController jak rozumiem to jest Sonata\AdminBundle\Controller\CRUDController?
Crash89
Cytat(ohm @ 8.04.2018, 19:26:50 ) *
BaseController jak rozumiem to jest Sonata\AdminBundle\Controller\CRUDController?


Tak
ohm
A w adminie masz dodaną tą akcję do BatchActions?
Crash89
Cytat(ohm @ 8.04.2018, 21:01:13 ) *
A w adminie masz dodaną tą akcję do BatchActions?


Tak, w ten sposób:

  1. /**
  2.   * @param array $actions
  3.   * @return array
  4.   */
  5. public function configureBatchActions($actions)
  6. {
  7. // retrieve the default batch actions (currently only delete)
  8.  
  9. $actions['generate_pdf'] = array(
  10. 'label' => 'generuj pdf',
  11. 'translation_domain' => 'SonataAdminBundle',
  12. 'ask_confirmation' => true
  13. );
  14.  
  15. return $actions;
  16. }


Może plik admin.yml trzeba gdzieś dodać do wczytania, bo po prostu stworzyłem ten plik i go wstawiłem do Resources/config.
LowiczakPL
zmień nazwę metody

batchActionGeneratePdf

na

batchGeneratePdfAction
ohm
Cytat(Crash89 @ 8.04.2018, 21:15:18 ) *
Może plik admin.yml trzeba gdzieś dodać do wczytania, bo po prostu stworzyłem ten plik i go wstawiłem do Resources/config.


No jeśli się nie ładuje admin, to owszem, ja zazwyczaj dorzucam do services.yml
  1. imports:
  2. - { resource: "sonata.yml" }


Crash89
Udało mi się rozwiązać problem, trzeba było w services.yml dodać argument controllera:

  1. admin.Orders:
  2. class: AppBundle\Admin\OrdersAdmin
  3. arguments: [null, AppBundle\Entity\Orders, AppBundle:OrdersAdmin]
  4. tags:
  5. - { name: sonata.admin, manager_type: orm, group: E-commerce, label: Orders }
  6.  


Dzięki Wam za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.