Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+Symfony] kolejność wykonywania się akcji kontrolerów
Forum PHP.pl > Forum > PHP
dopelganger
hej
w jaki sposób ustawić kolejność czytania kontrolerów?
czy to się w ogóle da zrobić?

Mam np w:

IndexController.php:
  1. /**
  2.   * @Route("/{slug}", requirements={"slug"=".+"}, name="page")
  3.   */
  4. public function indexAction()
  5. {


SearchController.php:
  1. /**
  2.   * @Route("/search", name="search")
  3.   */
  4. public function searchAction(Request $request)
  5. {


no i wpisując w przeglądarce adres .../search wykonuje się IndexController zamiast SearchController.php. Po prostu odczytuje to jako sluga i kłóci się jedno z drugim.
Jeśli wrzucę akcję searchAction do IndexControllera przed akcją indexAction to zadziała poprawnie.
Jak ustawić kolejność akcji dla rozdzielonych kontrolerów. Chciałbym mieć to po postu rozdzielone a nie w jednym kontrolerze.
Nie wiem czy to w ogóle możliwe.

dzięki
Pozdrawiam




dzięki
Pozdrawiam
ohm
Wszystkie akcje z "annotations" odczytywane są pokolei, alfabetycznie controller po controllerze.
Żeby mieć na samym końcu, to albo wypychasz routing do plików yml i tak sobie ustawiasz wszystko tak jak chcesz, dla każdej akcji konkretny routing, ewentualnie możesz wypchąć też dla poszczególnych controllerów
  1. acme_test:
  2. resource: "@Acme/Controller/TestController.php"
  3. type: annotation
  4.  
  5. acme_dummy:
  6. resource: "@Acme/Controller/DummyController.php"
  7. type: annotation


wyciągasz jedną akcję do jakiegoś SlugController (albo ZSlugController) i pamiętasz żeby zawsze był ostatni - raczej marny pomysł bądz wyciągasz całkowicie SlugController do osobnego bundla i routing z tego bundla trzymasz zawsze ostatni w app/config/routing.yml

Możesz jeszcze wykorzystać CMF Routing http://symfony.com/doc/master/cmf/componen...ting/index.html

Wybór już należy do Ciebie smile.gif
dopelganger
Cytat(ohm @ 18.01.2017, 14:37:03 ) *
Wszystkie akcje z "annotations" odczytywane są pokolei, alfabetycznie controller po controllerze.
Żeby mieć na samym końcu, to albo wypychasz routing do plików yml i tak sobie ustawiasz wszystko tak jak chcesz, dla każdej akcji konkretny routing, ewentualnie możesz wypchąć też dla poszczególnych controllerów
  1. acme_test:
  2. resource: "@Acme/Controller/TestController.php"
  3. type: annotation
  4.  
  5. acme_dummy:
  6. resource: "@Acme/Controller/DummyController.php"
  7. type: annotation


wyciągasz jedną akcję do jakiegoś SlugController (albo ZSlugController) i pamiętasz żeby zawsze był ostatni - raczej marny pomysł bądz wyciągasz całkowicie SlugController do osobnego bundla i routing z tego bundla trzymasz zawsze ostatni w app/config/routing.yml

Możesz jeszcze wykorzystać CMF Routing http://symfony.com/doc/master/cmf/componen...ting/index.html

Wybór już należy do Ciebie smile.gif


ok dzięki, działa
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.